ios - 停止 UITableView 自动滚动

标签 ios uitableview uiscrollview ios-animations

我有一个使用 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 选项,但没有任何作用。

有什么建议吗?

最佳答案

这是中断现有动画并将其替换为不同动画的经典问题的子集。

这里的问题是,如果您仅仅删除现有动画,您将跳到该动画的末尾。

解决方案是引用表示层 并在删除现有动画之前将层设置到该位置。 现在您从中途开始,可以应用另一个动画。

关于ios - 停止 UITableView 自动滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766993/

相关文章:

objective-c - iOS View 变换动画

ios - 滚动时如何在 UITableView 上保留自定义选择格式

ios - 在页面之间隐藏时移动到 ScrollView 中的特定页面 - iOS

iphone - 在 Iphone 中使用页面控件滑动图像(第 2 部分)

ios 将 UIScrollView 滚动条颜色更改为不同的颜色

ios - 根据内容更新 UICollectionView 高度

ios - 如何制作一个 self 调整大小的基本 UITableViewCell?

ios - UILocalNotification 始终将日期设置为本地时区

swift - 尝试在 TableView 中显示图像时出错

swift - 在 tableview 中从 UIDatePicker 更新 UILabel