【发布时间】:2016-02-19 10:01:12
【问题描述】:
我有一个使用setContentOffset 自动滚动的 UITableView。像这样:
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] 会停止动画,但由于某种原因移动了 contentOffset,没有达到我想要的效果。
我尝试在动画中使用UIViewAnimationOptionBeginFromCurrentState 选项,但没有任何效果。
有什么建议吗?
【问题讨论】:
-
你为什么不打电话给
setContentOffset:animated:? -
@matt 我在
[UIView animateWithDuration]块内调用它,带有UIViewAnimationOptionBeginFromCurrentState选项。什么都没有发生 -
抱歉,我只是对您想要实现的目标感到困惑。平稳地减速和停止,这听起来像是自定义动画曲线,那为什么不是你所需要的呢?换句话说,我看不出你的两阶段线性加完成的意义。只需动画到您想要动画到的位置...?
-
@matt 我删除了线性+完成。这并不重要。基本上,减速发生在用户点击“通知”之后。
-
啊。所以你的意思是,你在一个动画的中间,你想在它还在进行的时候突然改变它?
标签: ios uitableview uiscrollview ios-animations