私が取り組んでいるアプリの一部には、iOSメッセージアプリのインターフェースに似たものにしようとしているメッセージングインターフェースが含まれています。新しいメッセージが送受信されたら、テーブルビューを下にスクロールして挿入アニメーションを表示したいと思います。
これまでのところ、私は基本的にこれを行いました:
- (void)didReceiveNewMessage:(...) {
[messages addObject:...]; // add the new message to an array
NSIndexPath *newIndexPath = [NSIndexPath ...]; // find out where the new cell goes
[tableView insertRowAtIndexPath:newIndexPath ...]; // animate the insertion of the new message
[tableView scrollToRowAtIndexPath:newIndexPath ...]; // do the scrolling
}
これは、メッセージの着信が遅い場合に機能します。ただし、大量のメッセージをすばやく送信すると、テーブルビューが「混乱する」ことに気付きました。
たとえば、メッセージ1、2、3、4、5、6をすばやく送信すると、テーブルビューは、1、2、3、および4の挿入をアニメーション化し、スクロールを停止します。実際にテーブルビューを手動で下にスクロールすると、以下の5と6が表示されます。これを行うためのより良い方法を知っている人はいますか?
setContentOffset:
テーブルビューをスクロールしようとしましたが、これは同じ効果がありました。