如何使tableView偏移变为零?

时间:2011-08-02 04:16:38

标签: uiscrollview tableview bounce

我有一个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再次降到最低点。任何人都能给我一个线索吗?

1 个答案:

答案 0 :(得分:0)

我尝试了你的代码并发现tableview确实将它的contentOffset设置为(0,0)但是它将继续拖动动画。在滚动动画期间,tableview动画并同时按顺序更改它的边界每次边界更改时调用layoutSubviews。因此,即使contentOffset设置为(0,0),但在此之后,边界被设置为新值以继续滚动动画。

也许你可以试试

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
    [self setContentOffset:CGPointZero animated:YES];
}