2016-08-06 54 views
2

Ich habe ein Problem mit der automatischen Größenanpassung von Zellen in der Tabellenansicht und frage mich, ob jemand irgendwelche Vorschläge für mich hat. Ich habe ein Etikett, das ich mit Text einstelle. Ich habe Linien in IB auf 0 gesetzt. Ich habe auchUILabel aktualisiert seine Höhe nicht nach dem Setzen von Text (die meisten Male) in IOS

override func viewDidLoad() { 
      super.viewDidLoad() 
      tableView.rowHeight = UITableViewAutomaticDimension 
      tableView.estimatedRowHeight = 90 
      tableView.allowsSelection = true 
     } 

Wenn ich mehr Zellen nach unten scrollen. In den meisten Fällen aktualisiert das Label die Größe nicht so, dass es den gesamten Text enthält.

Ich legte den Text nach in einem Hintergrund-Thread, nachdem ich mit Firebase abrufen, verwende ich Firebase und Parse. Nachdem ich den Text, ich habe:

postCell.updateConstraints() 
postCell.layoutIfNeeded() 

Irgendwelche Ideen? DANK Screenshot1 Screenshot2

+0

Stellen Sie sicher, dass die Einstellung des Textes in der Zelle und alle Anrufe, die die Aktualisierung der Zellengröße erzwingen, in der Hauptwarteschlange stattfinden. –

+0

[dieser Beitrag] (http://stackoverflow.com/questions/18746929/using-auto-layout-inuitableview-for-dynamic-cell-layouts-variable-row-heights) kann hilfreich sein. – CoderWang

Antwort

1

Self-Größe-Cell ist sehr streng mit Einschränkungen. Zum Beispiel hat Ihre Zelle ein Label. Sie sollten Einschränkungen für die Zellen oben, unten, links und rechts machen. Oder wenn Sie die Breite des Etiketts festgelegt haben, müssen Sie keine Einschränkungen für links und rechts vornehmen. Mit anderen Worten, das Betriebssystem muss in der Lage sein, die genauen Größen der Zelle und ihrer Teilansichten zu berechnen. Überprüfe also deine Einschränkungen.