3

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

但是当我添加一个位于可见屏幕部分之外的新子视图时,或者当我只是调整一个也在可见屏幕部分之外的现有子视图的大小时,随后会出现一个 0.3 秒长的滚动动画(我可以看到它发生在我的代表身上),这似乎与新添加/调整大小的元素相匹配。

尝试:

  • pagingEnabled 始终为 NO。
  • 在子视图操作期间将 scrollEnabled 设置为 NO 无济于事。
  • 在子视图操作后执行 setContentOffset:animated:NO 不会阻止动画。
  • 一个包含我所有子视图的巨大子视图无济于事。

我目前的解决方法是最初将框架设置为适合可见屏幕部分,或者在另一个超级视图中调整大小,但感觉很脏,并且无法处理所有情况......

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

Xcode 4.3,适用于 5.1 的 iOS SDK。

4

2 回答 2

2

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

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

于 2012-10-16T01:36:45.853 回答
2

我也发现了这个问题并找到了这个解决方案http://www.iphonedevsdk.com/forum/iphone-sdk-development/94288-disabling-uiscrollview-autoscroll.html

它涉及UIScrollView在以下方法中子类化和不输入代码。

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

}

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

于 2012-06-24T10:05:28.987 回答