Neu in iOS 8, können Sie 100% dynamische Tabellenansicht Zellen erhalten, indem Sie einfach die geschätzte Zeilenhöhe festlegen und dann Ihre Elemente in der Zelle mit Auto Layout gestalten. Wenn der Inhalt in der Höhe zunimmt, wird die Zelle auch in der Höhe zunehmen. Das ist sehr nützlich, und ich frage mich, ob das gleiche Talent für Abschnittsüberschriften in einer Tabellenansicht erreicht werden kann?Ist es möglich, mit Auto Layout eine dynamische Header-Höhe des Tabellenansichtsabschnitts zu erhalten?
Kann man zum Beispiel erstellen UIView
in tableView:viewForHeaderInSection:
, fügen Sie ein UILabel
subview, automatische Layoutbeschränkungen für das Etikett gegen die Ansicht angeben, und haben den Blick Erhöhung der Höhe des Labels Inhalt passen, ohne tableView:heightForHeaderInSection:
implementieren zu müssen ?
Die Dokumentation für viewForHeaderInSection
besagt: "Diese Methode funktioniert nur ordnungsgemäß, wenn tableView: heightForHeaderInSection: ebenfalls implementiert ist." Ich habe nicht gehört, wenn sich für iOS 8 etwas geändert hat.
Wenn man das nicht kann, was ist der beste Weg, um dieses Verhalten nachzuahmen?
Das ist cool, wenn es funktioniert, aber die docs es nicht erwähnt, und auch nicht die WWDC Sitzung, wenn ich mich richtig erinnere. Die Dokumentation für 'UITableViewAutomaticDimension' lautet:" Wenn Sie diese Konstante in 'tableView: heightForHeaderInSection:' oder 'tableView: heightForFooterInSection:' zurückliefern, verwendet 'UITableView' eine Höhe, die zu dem von' tableView: titleForHeaderInSection: 'oder' tableView: titleForFooterInSection: '(wenn der Titel nicht' nil' ist). " –
Ich kann bestätigen, es funktioniert wunderbar für Auto-Layout-Einschränkungen, die ich eingerichtet habe, einschließlich zusätzlicher Polsterung hinzugefügt - es ist nicht nur die Höhe des Textes.Tatsächlich habe ich 'tableView: titleForHeaderInSection:' nicht implementiert, das ist nicht nötig. – Joey
Das ist aufregend. Toller Fund. –