我有一个表格视图,当用户在 UITableView 上向下滚动(按下拇指)时执行动画,当用户在 UITableView 上向上滚动(按下拇指)时执行不同的动画。
问题是当用户到达 UITableView 的底部并且它反弹时,表格会先向上然后向下移动,从而在不应该执行动画时执行动画。
滚动到顶部时会发生同样的行为;但是,我能够像这样检测到它:
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
self.lastContentOffset = scrollView.contentOffset;
}
-(void) scrollViewDidScroll:(UIScrollView *)scrollView {
// Check if we are at the top of the table
// This will stop animation when tableview bounces
if(self.tableView.contentOffset.y < 0){
// Dont animate, top of tableview bounce
} else {
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y) {
// Downward animation
[self animate:@"Down"];
} else {
// Upward
[self animate:@"Up"];
}
self.lastContentOffset = currentOffset;
}
}
这工作得很好,但对于我的生活,我无法找出一个 if 条件来检测底部。我确信这很简单,我只是想不通。