我有一个充满子视图的UIScrollView
,在创建它并最初填充它时一切都很好。
可见屏幕部分之外的现有子视图的大小时,随后会出现一个 0.3 秒长的滚动动画(我可以看到它发生在我的委托中)似乎与新添加/调整大小的元素匹配。
尝试:
- 分页启用始终为"否"。
- 在子视图操作期间将滚动启用设置为 NO 无济于事。
- 在子视图操作后执行 setContentOffset:animated:NO 不会阻止动画。
- 一个包含我所有子视图的巨大子视图无济于事。
我目前的解决方法是最初将框架设置为适合可见屏幕部分,或者在另一个超级视图中进行调整大小的工作,但它感觉很脏,并且无法处理所有情况......
有没有办法在以编程方式操作子视图时防止这种自动滚动动画?
Xcode 4.3,iOS SDK for 5.1。
我也发现了这个问题,并找到了这个解决方案 http://www.iphonedevsdk.com/forum/iphone-sdk-development/94288-disabling-uiscrollview-autoscroll.html
它涉及对UIScrollView
进行子类化,并且在以下方法中不输入任何代码。
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated {
}
就像那个人在链接上说的那样,我发现它可以工作,到目前为止没有问题。希望它对你有用。
我遇到了这个问题,因为我在添加子视图之前设置了滚动视图的内容大小。
一旦我更改代码,以便在添加子视图后设置滚动视图的内容大小,问题就消失了。