我正在开发的应用程序的一部分涉及一个消息传递界面,我正在尝试制作类似于 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:
滚动表格视图,但这具有相同的效果。