Ich habe einen TableViewController mit dynamischen Zellen, die 3 Beschriftungen und ein ImageView darin enthalten. Ich habe es in einem Storyboard erstellt. Es sieht wie folgt aus ...Steuern der Einschränkung des Zellenelements von TableViewController
- Label1
oImg - Label2
- Label3
Und wird Label2 senkrecht zur Imageview zentriert (nennen wir es Constraint-A); und die anderen Labels sind auch auf Label2 ausgerichtet.
Was ich versuche zu tun ist, in cellForRowAtIndexPath
in TableViewController, überprüfen Sie, ob Label3 leer ist, verschieben Sie Label2 nach unten und Label1 behält die Einschränkung zuvor (also auch nach unten).
Als erste Option habe ich versucht, Constraint-A mit TableViewController zu verbinden, aber da es TableViewCell ist, kann ich die Constraint-Ausgabe nicht mit TableViewController verbinden.
Dann habe ich versucht, diese manuell nach unten bewegen, aber weirdly nur es zu beeinflussen eine Reihe (erste ohne Label3), während Rest der cellForRowAtIndexPath
funktioniert okay ..
cell.Label2.frame.origin.y += 5
cell.Label1.frame.origin.y += 5
Was der geeignete Weg ist, dies zu erreichen ? (So kann ich entweder die Constraint-A manuell steuern oder Label2 manuell verschieben und Label1 folgt)
Es auf Zwang abhängt. Sie können ** Constraint Outlet ** zu * YourCusstomCell Class * machen. In cellForRow können Sie überprüfen, ob Ihre Datenquelle für Label3 leer ist. Sie ändern die Einschränkung für diese Methode. Ich denke, Sie müssen alle Etiketten und Bildausgänge machen, um eine Einschränkung zu machen. –
Und es hängt von Ihrer Anforderung ab, dass die Höhe Ihrer Zeile fest ist oder nicht, und Ihr Etikett ist 1 Zeile oder mehrere Zeilen. –
set Label3 Nummer der Zeile 0 und entfernen Sie vertikal mittig zur imageView, wenn der Text leer ist Ihre Label2 automatisch runter –