如果动画,UIScrollView 滚动到不同的位置

Posted

技术标签:

【中文标题】如果动画,UIScrollView 滚动到不同的位置【英文标题】:UIScrollView scrolls to different position if animated 【发布时间】:2013-02-09 16:00:36 【问题描述】:

我有一个简单但又困难的问题:

[self.scrollViewForKeyboard setContentOffset:CGPointMake(0, self.contentOffsetYBeforeEditing) animated:NO];
[self.scrollViewForKeyboard setContentOffset:CGPointMake(0, self.contentOffsetYBeforeEditing) animated:YES];

在我的应用程序的某个点有不同的效果:不动画内容偏移将滚动到预期的位置,但是使用动画标志设置更改内容偏移会使UIScrollView 向下滚动太多。如果我单击/点击混乱的UIScrollView,它将重置到上面动画消息设置的正确位置。如果我自己使用动画块为滚动设置动画,一切正常。

确切的情况在这里很难解释,因为我显示的内容有点复杂,所以我的问题是:有没有可能,UIScrollView 的动画在某种程度上干扰了其他部分我的应用程序?一般什么情况下会导致这种行为?

【问题讨论】:

【参考方案1】:

一个可能的原因是另一个动画同时或几乎同时发生,影响滚动视图的框架或 contentSize。

【讨论】:

我认为这是正确的答案,因为我确实在为滚动视图的内容设置动画,改变它是contentSize。不过,我可以非常简单地解决问题:我只是选择了我最初问题中描述的动画块选项,现在一切正常。

以上是关于如果动画,UIScrollView 滚动到不同的位置的主要内容,如果未能解决你的问题,请参考以下文章

动画时UIScrollView setContentOffset?

Swift - UIScrollView 滚动动画在 viewDidLoad() 中不起作用

IOS。当 UIScrollView 滚动时应用另一个滚动动画[关闭]

UIScrollView 滚动时为对象设置动画

有没有一种安全的方法来手动动画 UIScrollView 的滚动?

不同版本的 UIScrollView - iOS