2016-04-20 6 views
0

私はメッセージ(UILabels)を泡の形で表示する必要があるチャットアプリケーションに似たUIを持っています。私はラベルを含むカスタムセルでこのためにUITableViewを使用しました。遅れてUITableViewに行を挿入する

例:最初に3つのメッセージがあるとします。

Hi 
How are you? 
What can I do for you? 

3つのセルが遅れて次々と現れるようにしたいので、経験のようなチャットを得ることができます。 Iはdispatch_afterを試みたとブロック内でIは

[tableView insertRowsAtIndexPath: withAnimation:] 

を有するが、これは遅延なし一括3行を挿入します。 助けてもらえますか?

+0

それは同時に3行を挿入 – Wain

+0

'が動作するようには思えない' を定義。そして、私は感覚のようなチャットを得ることができません –

+0

別々のディスパッチを試しましたか?それぞれ異なる遅延時間で1行追加しましたか? – Wain

答えて

0

これはうまくいくはずですが、アップデートとメインキューを追加する必要があります。

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

メインスレッドの使用

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

}) 
+0

1回の 'insert' /' delete'コールのために 'beginUpdates/endUpdates'は全く必要ありません – vadian

+0

@Sean:[beginUpdates]と[endUpdates]を3回使用する必要がありますか? –

+0

遅延をしたい場合は、yes – SeanLintern88

0

に対してアクションを実行するには、また、一度にすべてのこれらの行を挿入し、テキストとUILabelsにアルファ= 0を設定することができます。 次に、[UIView animateWithDuration]を連続して使用すると、alphaを1に滑らかにして、ラベルが表示されます。

関連する問題