Jef*_*eff 5 objective-c uitableview uiscrollview ios
我有一个表视图,显示我通过网络获取的消息.
当有新消息进入时,应将其添加到底部的tableview中.
当有新消息进入时,它会正确地添加到tableview的底部,但是tableview会立即滚动到中间.(所以,如果我现在已经说过100个单元格,那么单元格50现在将位于滚动视图的中间).
奇怪的是,只有在插入前的滚动点位于tableview的下半部分时才会发生这种情况.
所以,如果我正在查看99的单元格10,并且我添加了一行,它会被添加到底部就好了.
但是,如果我正在查看99的单元格75,并且我添加了一行,则滚动位置再次跳到中间(〜单元格50).
这是我向tableview添加新消息的代码:
[self.tableView beginUpdates];
[self.messages addObject:message];
NSArray *indexPaths = @[[NSIndexPath indexPathForRow:(self.messages.count - 1) inSection:0]];
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
Run Code Online (Sandbox Code Playgroud)
为什么tableview会像这样自动滚动?
我认为你需要将行动画更改为无-
[self.tableView
insertRowsAtIndexPaths:indexPaths
withRowAnimation:
UITableViewRowAnimationNone];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |