Obwohl für alle Elemente Einschränkungen festgelegt wurden, einschließlich der vertikalen, die für die Berechnung der Höhe der Zelle erforderlich sind, scheint das automatische Layout ignoriert zu werden: Alle Zellen werden gequetscht.
Hier ist ein Screenshot des Ergebnisses und der Einschränkungen im Storyboard.
In der VC, die die tableView enthält, ist hier der Code in viewDidLoad:
tableView.estimatedRowHeight = 120.0
tableView.rowHeight = UITableViewAutomaticDimension
Wenn Sie die zweite Zeile auskommentieren, erhalten Sie Zellen mit einer Höhe von 120,0, aber Autolayout wird ebenfalls ignoriert.
Vielen Dank
Aktualisieren
Um die Benutzeroberfläche zu vereinfachen, habe ich ein einzelnes Etikett mit folgenden Einschränkungen hinterlassen:
- Führender Raum zur Übersicht
- Top Platz zum Überwachen
- Feste Breite und Höhe (100 & 100)
- Unterer Raum zum Containerrand, um sicherzustellen, dass die Zelle alle vertikalen Einschränkungen hat, um ihre Höhe zu bestimmen
Und mit dieser vereinfachten Oberfläche wird das automatische Layout immer noch nicht berücksichtigt, was mich darauf hinweist, dass das Problem nicht auf schlecht eingestellte Einschränkungen zurückzuführen ist.
Im Größeninspektor wird die Zeilenhöhe auf 120 festgelegt und Benutzerdefiniert aktiviert. Die Zelle hat die richtige benutzerdefinierte Klasse, die Kennung für die Wiederverwendung von Zellen ist korrekt.
Update: Lösung gefunden
Dies war ein einfacher Fehler, siehe meine Antwort unten.
quelle
Antworten:
Das automatische Layout wurde ignoriert, da sowohl die Prototypzelle als auch die UIView der Zelle in IB die benutzerdefinierte Zellklasse erhalten hatten.
Das Zurücksetzen der UIView auf die UIView-Klasse löste das Problem.
quelle
Ich denke, das Problem ist, dass Sie implementieren:
Sie müssen diese Funktion entfernen, damit die Tabellenansicht ihre automatische Höhe für Zellen berechnet.
quelle