2016-04-20 14 views
0

Ich habe eine Benutzeroberfläche ähnlich einer Chat-Anwendung, wo ich Nachrichten (UILabels) in Form von Blasen zeigen muss. Ich habe UITableView dafür mit benutzerdefinierten Zellen verwendet, die ein Label enthalten.Einfügen von Zeilen in UITableView mit Verzögerung

Beispiel: Sagen wir, ich habe zunächst 3 Nachrichten.

Ich möchte die 3 Zellen nacheinander mit einiger Verzögerung erscheinen, um einen Chat wie Erfahrung zu bekommen. Ich habe dispatch_after versucht und in den Block, habe ich

[tableView insertRowsAtIndexPath: withAnimation:] 

aber dies fügt 3 Reihen alle zusammen ohne Verzögerung. Kann jemand bitte helfen?

+0

definieren 'scheint nicht zu funktionieren' zugleich – Wain

+0

Es fügt 3 Reihen. Und ich bin nicht in der Lage, den Chat zu bekommen wie fühlen –

+0

haben Sie versuchen, separate Versand jeweils 1 Zeile mit unterschiedlichen Verzögerungszeiten hinzufügen? – Wain

Antwort

0

Dies sollte funktionieren, aber Sie müssen Updates und Hauptwarteschlange hinzufügen.

[tableView beginUpdates] 
[tableView insertRowsAtIndexPath: withAnimation:] 
[tableView endUpdates] 

Um Aktionen auf dem Hauptthread Verwendung

dispatch_async(dispatch_get_main_queue(), {() -> Void in 

}) 
+0

'beginUpdates/endUpdates' wird überhaupt nicht benötigt für einen einzigen' insert'/'delete' Aufruf – vadian

+0

@Sean: Muss ich dann [beginUpdates] und [endUpdates] dreimal verwenden? –

+0

Wenn Sie zwischen, ja 'verzögern möchten – SeanLintern88

0

Sie führen auch, alle diese Zeilen auf einmal und setzen alpha = 0 bis UILabels mit Text einfügen können. Dann können Sie mehrere aufeinanderfolgende [UIView animateWithDuration] verwenden, um Alpha auf 1 zu glätten - und es werden Beschriftungen angezeigt.

Verwandte Themen