2016-05-30 13 views
0

Ich möchte Höhe einer benutzerdefinierten Tabellenansicht Zelle auf Null, die mit Autolayout erstellt wurde. Im Grunde habe ich die Containeransicht als Unteransicht zu cell.contentview hinzugefügt. Die oberen, unteren, linken und rechten Seiten der Containeransicht werden an die obere, untere, linke und rechte Seite der Inhaltsansicht angeheftet. Unter bestimmten Bedingungen möchte ich die Höhe als 0 setzen.Machen Sie benutzerdefinierte Zelle (mit Autolayout erstellt) Höhe auf Null

Ich habe die Constraints der Inhaltsansichten durchlaufen und festgestellt, dass diese Einschränkung das Problem verursacht.

NSLayoutConstraint: 0x1369d8670 UITableViewCellContentView: 0x1369b1a90.height == 48

Diese Einschränkung wird standardmäßig durch tableview hinzugefügt.

Dinge, die ich versuchte: Ich entfernte alle Teilansichten der Containeransicht. Aber das macht die Zellenhöhe nicht auf Null.

Dinge, die ich will nicht tun:

  1. Ich mag nicht ganzen Tableview Coz nachladen will ich viele Zeilen mit vielen Subviews werden muß.
  2. Ich will nicht Zeile löschen

Wie kann ich Höhe auf Null gesetzt?

Antwort

0

Sie können eine bestimmte Zeile neu laden, so dass sie die Delegate-Methode von tableview für die Höhenänderung heightForRorAtIndexpath aufruft. Sie können die Höhe 1 festlegen, wenn Sie eine bestimmte Zeile programmgesteuert neu laden. Sie können das temporäre indexpath speichern, das Sie auf Null setzen möchten.

Clip alle subiviews von clipsToBounds=YES

Anruf [self.tableView layoutIfNeeded];

+0

Versucht Ihr suggesstion aber kein Glück. Die Inhaltsansicht der Zelle ist weiterhin sichtbar. Ich ging durch die Einschränkungen der Inhaltsansicht und stieß auf die Einschränkung, . –

+0

Das Nachladen bestimmter Zellen und das Zurückgeben von 0 in 'heightForRorAtIndexpath' haben den Zweck erfüllt. –

+0

@JafferSheriff, So funktioniert es mit Höhe 0? –

Verwandte Themen