UIStackViews eigene intrinsicContentSize

8

Ich verwende das UIStackView mit der folgenden Konfiguration:

%Vor%

Jedes der Elemente hat seine eigene intrinsicContentSize , so dass UIStackView eine eigene intrinsicContentSize angeben kann. Die Dokumentation besagt, dass spacing als Mindestabstand verwendet wird.

Beispiel:

%Vor%

Die intrinsicContentSize.width der stackView sollte 30 sein.

Stattdessen bekomme ich:

%Vor%

was mir sagt, dass intrinsicContentSize nicht zur Verfügung gestellt werden kann.

Weiß jemand von euch, ob ich etwas falsch mache, ob das Verhalten beabsichtigt ist oder ob das ein Fehler ist?

    
simonseyer 26.10.2015, 14:52
quelle

2 Antworten

10

Ab iOS 9.1 implementiert UIStackView nicht intrinsicContentSize :

%Vor%

Ausgabe:

%Vor%

Sie könnten eine Unterklasse von UIStackView erstellen und sie selbst implementieren, wenn Sie sie wirklich brauchen. Das solltest du aber nicht tun müssen. Wenn UIStackView (durch die Einschränkungen dafür) eine eigene Größe zulässt, erfolgt dies basierend auf der inhaltlichen Größe der angeordneten Subviews (oder nach anderen Einschränkungen, die Sie für die Größe der angeordneten Subviews festgelegt haben).

    
rob mayoff 29.10.2015, 18:58
quelle
0

Die von Ihnen erstellten UIViews haben eine intrinsische Höhe und Breite von Null. Verwenden Sie stattdessen Autlaylay-Einschränkungen für die zugrunde liegenden UIViews.

Sie können auch das automatische Layout verwenden, um die Größe des UIStackView zu bestimmen. Wenn Sie diese Option verwenden, stellen Sie die Ausrichtung nicht auf center ein, sondern stattdessen fill.

Beispiel:

%Vor%

Dies funktioniert, weil die Stapelansicht jetzt eine Höhe und eine Breite hat.

    
Jason Harris 29.10.2015 18:46
quelle