我有一个TableView,有这么多的TableViewCell,但在TableView的最后我想制作一个会使tableview偏移变为零的代码,所以tableview回到顶部
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
if (scrollView.contentOffset.y <=-30) {
[self dosomething];
}
else if(scrollView.contentOffset.y >=1150){
[tableViewA setContentOffset:CGPointZero animated:YES];//this code is called and yet offset doesn't become 0
}
}
所以使用这段代码,如果用户反弹到顶部,它将调用dosomething函数,如果我们反弹到底部,它将使tableViewA位于顶部,但它仍然在底部。如果我没有错,tableView Bounce再次降到最低点。任何人都能给我一个线索吗?
答案 0 :(得分:0)
我尝试了你的代码并发现tableview确实将它的contentOffset设置为(0,0)但是它将继续拖动动画。在滚动动画期间,tableview动画并同时按顺序更改它的边界每次边界更改时调用layoutSubviews。因此,即使contentOffset设置为(0,0),但在此之后,边界被设置为新值以继续滚动动画。
也许你可以试试
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
[self setContentOffset:CGPointZero animated:YES];
}