Stellen Sie die Höhe von UITableView mit Auto Layout auf die Höhe seines Inhalts ein
Ich habe eine Ansicht mit zwei Etiketten und einen Tisch, den Blick ins innere. Ich will label 1 bleiben immer oberhalb meiner Tabelle Anzeigen und label 2", unterhalb der Tabelle Anzeigen. Das problem ist, dass die Tabellenansicht braucht, um auto-Größe, also entweder in der Höhe erhöhen oder verringern.
Nun habe ich eine Einschränkung, nämlich der Tabellen-Ansicht die Höhe ist immer gleich 85 und einen @IBOutlet
auf die Höhe Einschränkung, wo ich bin in der Lage, ändern Sie die Konstante.
Ich vermute, ich brauche eine änderung der Konstanten, um die Höhe aller Zellen, aber ich bin mir nicht sicher, wie.
Kommentar zu dem Problem
Eine andere Lösung ist eine Unterklasse von
UITableView
, legt Ihre eigenen intrinsicContentSize.height
in Ihrer contentSize.height
. Siehe stackoverflow.com/a/17335818/77567 . @robmayoff Antwort ist besser, meiner Meinung nach, wie es ist dynamischer als joern Antwort.
InformationsquelleAutor der Frage Dumpen | 2015-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie überschreiben
updateViewConstraints()
in Ihrer UIViewController, und legen Sie die Höhe Einschränkung der Konstante tableView.contentSize.Höhe:Dann haben Sie, um sicherzustellen, dass
Label2
eine Einschränkung, diegreaterThanOrEqual
zu der Tabelle unten. Und Sie haben auch zum ändern der Ansicht Tabelle ist die Höhe, die Einschränkung der Priorität vonRequired
zuHigh
um Konflikte zu vermeiden-Einschränkungen, wenn der Tisch Ansicht istcontentHeight
ist größer als die verfügbare Höhe.InformationsquelleAutor der Antwort joern
gibt es eine andere Lösung .
Sie können hinzufügen Beobachter auf tableview 'contentSize' variable . und selbst die Größe ändern, wenn in Tabelle anzeigen von Inhalten.
InformationsquelleAutor der Antwort nova