UIScrollView在addSubview或更改框架之后不需要的滚动

我有一个UIScrollView填充子视图,创build它,并最初填充时,一切都很好。

但是,当我添加一个新的子视图的可见屏幕部分以外的位置,或者当我只调整一个现有的子视图也是可见的屏幕部分之外,有一个随后的0.3s长的滚动animation(我可以看到它发生在我的委托)似乎匹配新添加/resize的元素。

尝试:

  • pagingEnabled始终为NO。
  • 在子视图操作过程中将scrollEnabled设置为NO不起作用。
  • 在子视图操作之后执行setContentOffset:animated:NO不会阻止animation。
  • 我的所有子视图中的一个巨大的子视图并没有帮助。

我目前的解决方法是最初设置框架,以适应可见的屏幕部分,或在另一个超级视图的大小工作,但它感觉肮脏,并不会处理所有情况下…

有没有办法来防止这种自动滚动animation时,以编程方式操作子视图?

Xcode 4.3,iOS SDK for 5.1。

我也发现了这个问题,发现这个解决schemehttp://www.iphonedevsdk.com/forum/iphone-sdk-development/94288-disabling-uiscrollview-autoscroll.html

它涉及到UIScrollView子类化,并在下面的方法中不input代码。

 - (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated { } 

就像这个人在链接上说的,我发现它到目前为止工作,没有问题。 希望对你有效。

我有这个问题,因为我在添加子视图之前设置滚动视图的内容大小。

只要我更改代码,以便在添加子视图后设置滚动视图的内容大小,问题就消失了。