UIStackView eigenen intrinsicContentSize
Ich bin mit dem UIStackView mit der folgenden Konfiguration:
let contentView = UIStackView()
contentView.distribution = .EqualSpacing
contentView.alignment = .Center
contentView.spacing = horizontalSpacing
Jedes der Elemente hat seine eigene intrinsicContentSize
so sollte es möglich sein, für die UIStackView
seinen eigenen intrinsicContentSize
. Die Dokumentation besagt, dass die spacing
ist als ein minimaler Abstand.
Beispiel:
view1: width=10
view2: width=15
spacing = 5
[view1(10)]-5-[view2(15)]
Den intrinsicContentSize.width
des stackView sollte 30
.
Stattdessen habe ich bekommen:
▿ CGSize
- width : -1.0
- height : -1.0 { ... }
was mir sagt, dass die intrinsicContentSize
nicht zur Verfügung stellen.
Kennt jemand von Euch wissen, ob ich irgendwas falsch, wenn das Verhalten beabsichtigt ist oder ob das ein bug ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als iOS 9.1,
UIStackView
nicht umsetzenintrinsicContentSize
:Ausgabe:
Könnten Sie eine Unterklasse von
UIStackView
und es selbst implementieren, wenn Sie es wirklich brauchen. Sie sollten nicht brauchen, aber. WennUIStackView
erlaubt ist (durch die Nebenbedingungen), um wählen Sie Ihre eigene Größe, so tut Sie das, basierend auf seinen angeordnet Untersichten' intrinsische Größe des Inhalts (oder durch andere Einschränkungen, die Sie sich gesetzt haben, auf die Größen seiner arrangiert Untersichten).den UIViews, die Sie erstellt haben eine intrinsische Höhe und Breite von null. Versuchen Sie es mit autolayout-constraints anstelle der zugrunde liegenden UIViews.
Können Sie auch verwenden, autolayout, um die Größe der UIStackView, wenn Sie dies tun, verwenden Sie nicht setzen die Ausrichtung auf Mitte, die Sie verwenden sollten, füllen Sie stattdessen.
Beispiel:
Dies funktioniert, weil die stackview hat nun eine Höhe und Breite.
stackViewForCell
variable kommen?