UILabel führt beim Start in einer benutzerdefinierten UITableViewCell keine Multinline aus, aber nach dem Zurückscrollen

8

bearbeite # 1

Ich habe hier einen Link zum Projekt auf github hinzugefügt: Ссылка

Das ist wirklich mein erstes Mal, dass ich mit Auolayout klarkomme, also erwarte ich, dass ich ein paar Amateurfehler mache. Ehrlich gesagt, weiß ich, wie ich das tun würde, Frames zu manipulieren, aber nicht mit dem automatischen Layout mit dem Clipping des Inhalts richtig arbeiten kann. Ein Teil der Fragen ist, sollte ich nur Frames verwenden, wenn wir immer im Portrait-Modus sind?

Ich habe eine benutzerdefinierte UITableViewCell, wo ich ein paar UILabels habe. Sie sind auf numberOfLines = 0 festgelegt. Manchmal werden sie den Text abschneiden. So:

Wie behebe ich das? Ich habe versucht, Daten in ViewDidLoad neu zu laden, aber das schien nicht von Bedeutung zu sein. Meistens, wenn Sie scrollen, repariert es sich selbst (aber nicht immer). Es kann sich um drei beliebige UILabels handeln und ist unabhängig von der Textmenge. Mein erstes Mal benutze ich UILabels mit Auto Layout, also wahrscheinlich einen Fehler, den ich gemacht habe. Hier sind meine UILabel-Eigenschaften:

und das Layout für das erste Label:

    
timpone 05.07.2015, 04:16
quelle

5 Antworten

3

Ihr automatisches Layout ist perfekt . Das Problem trat nur auf, weil Sie in Ihrem xib < auto layout mit Standardtext festgelegt haben / stark>. und in dir viewDidLoad , wo du UILabel text aktualisierst aber layout nicht programmatisch aktualisierst. Also bleibt nur eine Zeile übrig:

%Vor%

Fügen Sie eine neue Zeile hinzu, bevor Sie UITableView in viewDidLoad method neu laden. all die Dinge funktionieren gut.

Beispiel :

%Vor%

Hoffe, das hilft dir.

    
Jatin Patel 11.07.2015, 05:40
quelle
2

Aktualisieren Sie Ihre Zellenbeschränkung und das Layout

%Vor%     
Gaurav Patel 07.07.2015 05:55
quelle
2

Ich habe die Quelle von Git heruntergeladen. Ich bin mir nicht sicher, ob das ein Bug ist oder nicht. Aber das erneute Laden der Tabelle in viewdidappear löste das Problem.

%Vor%

So sieht es auf dem Simulator aus, wenn Sie die obige Operation ausführen.

    
Saikiran K 09.07.2015 08:51
quelle
1

Fügen Sie einfach self.mainTV.reloadData() in viewDidLayoutSubviews() hinzu, um Ihr Problem zu lösen.

Sie können hier mehr Details sehen.

Ссылка

    
PowHu 09.07.2015 04:37
quelle
0

Ich sehe, dass Sie die Beschränkung nur in der Höhe und ohne Breite festlegen. Versuchen Sie es auch einzustellen.

    
BlueBookBi. 14.07.2015 01:54
quelle

Tags und Links