Ich habe eine UILabel
für die Artikelbeschreibung unter anderen Ansichten, die alle mit Einschränkungen in Interface Builder angelegt sind - Sie können alle relevanten Einschränkungen im Bild unten sehen. Die Anzahl der Zeilen wird ebenfalls auf 0
gesetzt.
Ich habe die Beschränkung für die Höhe nicht festgelegt, weil ich die UILabel
basierend auf dem darin enthaltenen Text in der Größe ändern möchte. Was passiert, ist stattdessen direkt nach
wird aufgerufen, die Höhe von UILabel
wird auf 0
gesetzt. Auch wenn ich keinen anderen Text auf UILabel
setze, wird im Interface Builder der Standardwert Elementbeschreibung festgelegt.
Die Beschriftung des Item-Titels oben wird auf die gleiche Weise eingestellt, aber diese wird nicht auf 0
gequetscht, daher bin ich etwas verwirrt.
Hat jemand Erfahrung mit einem solchen Verhalten?
Ich habe es gelöst, indem ich die UILabel
vertical compression resistance priority
auf 1000
(default 750
) im Interface Builder gesetzt habe.
Da meine Ansichten in eine andere Ansicht eingebettet sind und der untere Teil der übergeordneten Ansicht vom unteren Teil der untersten untergeordneten Ansicht abhängig ist, spekuliere ich nur, dass die UILabel
ohne Höhenbeschränkung beim Auslegen des Ansichten. Wahrscheinlich würde das Spielen mit Prioritäten anderer Beschränkungen irgendwo in der Kette das gleiche Ergebnis ergeben, aber ich konnte es nicht erfolgreich machen. Die obige Lösung hat jedoch funktioniert, was in meinem Fall gut genug ist.
Hoffe das hilft jemandem.
AutoLayout
in diesem UIViewController
kann nicht alle constraints
, die Sie festgelegt haben, erfüllen, daher werden die auf Ihrem UILabel
abgewiesen, was zu einem komprimierten Zustand führt. Sie sollten sich die anderen constraints
in Ihrer UIViewController
ansehen und die priority
von height contraint
auf eine höhere Zahl setzen.
Strg ziehen von der Beschriftung zu sich selbst & gt; Höhe wählen & gt; setze die Konstante der Höhe auf 0 und verändere gleich (==) zu größer als oder equeal (& gt; =)
Ich denke, Sie müssen 5 Einschränkungen für Ihr Label festlegen:
Fügen Sie dann ein IBOutlet in Ihrem Controller auf der Constraint-Höhe hinzu (sagen wir LabelHeight).
So können Sie in Ihrer viewDidLoad diesen Constraint-Wert setzen:
%Vor%Tags und Links objective-c ios autolayout