Ich verwende Auto-Layout, um die Höhen der Zeilen in UITableView
, wie beschrieben here. Dieser Teil funktioniert.Vertikale Mehrdeutigkeit in Auto-Layout-Größe UITableView Zeilen
ich stapeln einige Etiketten, so dass sie aussehen wie dies im Interface Builder:
Die Einschränkungen sind das, was man erwarten würde, V:|-lab1-lab2-lab3-|
. Das Problem ist, dass es zweideutig ist und verlangt, dass Sie die Prioritäten für den vertikalen Inhalt ändern.
Es sollte nicht mehrdeutig sein. Die Beschriftungen sollten die Höhe der Zeile definieren. Aber IB scheint die Höhe der Zeile zu nehmen, die Sie auf IB ziehen können, als etwas, das die Beschriftungen einschränkt, wenn es wirklich zur Laufzeit ist, dass der Etiketteninhalt die Höhe der Zeile bestimmt . In diesem Bild ist die Zeilenhöhe etwas größer als es zur Laufzeit sein sollte, so dass die grüne Beschriftung von ihrem Textinhalt weggezogen wird, und IB beginnt, nach Inhalt zufrieden stellenden Prioritäten zu fragen. Normalerweise würde ich dieses Problem lösen, indem ich auf "Frames aktualisieren" klicke, was die Zeilenhöhe auf die Label-Höhe herunterziehen würde, aber "Frames aktualisieren" hat keinen Einfluss auf Zeilenhöhen in UITableView
.
Gibt es einen Standard Weg, dies zu lösen? Ich würde denken, dass Leute die ganze Zeit schlagen, wenn sie Auto-Layout für Zeilenhöhen verwenden.
Ich weiß über 'UITableViewAutomaticDimension' und dieser Teil ist eingerichtet. Das Bild stammt vom Interface Builder, nicht von der Benutzeroberfläche zur Laufzeit.Ich sollte keine expliziten Höhen für Beschriftungen angeben müssen, da sie ihre Höhe von ihrem Text nehmen, und die Summe sollte die dynamische Zeilenhöhe ergeben. –
Ich habe meine Frage um einige Details und Erklärungen erweitert. Ich finde es schwierig, dieses Problem zu erklären. –
Hey Rob N, eigentlich wenn ich sagte "Fix Höhe" ich meine nicht explizite Höhe. Ich meinte, du solltest die Höhe des ersten Etiketts gleich dem zweiten, gleich dem dritten, einstellen. Dadurch werden ihre Höhen zur Laufzeit festgelegt, und Sie werden mit dem Layout enden, das ich denke, dass Sie erwarten (alle Etiketten mit der gleichen Höhe) – RomOne