当在删除一行或添加一行时使用UITableViewRowAnimation
时,有时如果该行位于tableview的最末端,则表会滚动。
然而,即使它滚动了,它似乎也没有在委托(delegate)上调用scrollViewDidScroll:
。
例如,我的委托(delegate)中有以下代码。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Scrolling %f", scrollView.contentOffset.y);
}
如果用户滚动,哪个会被调用。
但是当我删除一行时:
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
根本不调用
scrollViewDidScroll:
方法。有什么方法可以确保在
UITableView
设置动画时调用此函数?谢谢!
最佳答案
如果您不知道,则仅在响应用户与滚动 View (或在这种情况下为表 View )的交互时才调用scrollViewDidScroll
。由于动画而未响应滚动而调用它。此行为是固定的。您需要找到另一种方式来实现自己的目标。也许这个现有的问题可能有用:
How to make UIScrollView send scrollViewDidScroll messages during animations