停止自动滚动UITableView
我有一个UITableView,我用setContentOffset
自动滚动。 像这样:
CGFloat point = self.table.tblMinutes.contentSize.height - self.table.tblMinutes.bounds.size.height; [self.table.tblMinutes setContentOffset:CGPointMake(0, point) animated:false]; [self.table.tblMinutes layoutIfNeeded]; [UIView animateWithDuration:20.0 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{ [self.table.tblMinutes setContentOffset:CGPointMake(0, point - 500) animated:false]; } completion:nil];
我想要达到的是滚动平稳减速停止。 我一直无法做到这一点。
调用[self.table.tblMinutes.layer removeAllAnimations]
停止animation,但由于某种原因移动contentOffset,达不到我想要的。
我尝试在animation中使用UIViewAnimationOptionBeginFromCurrentState
选项,但是什么都没做。
有什么build议么?
这是中断现有animation并用不同的animation取代它的经典问题的一个子集。
这里的问题是,如果你只是删除现有的animation,你会跳到该animation的结尾。
解决scheme是在去除现有animation之前查阅表示层并将图层设置到该位置。 现在你从中游开始,可以申请另一个animation。
看看Kyle Truscott关于UIScrollView 的优秀博客文章 。 UITableViewinheritance自UIScrollView,所以理论上它应该工作。