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

标签 ios uiscrollview uikit

我有一个充满 subview 的 UIScrollView,在创建它和最初填充它时一切都很好。

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

尝试:

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

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

有没有办法在以编程方式操作 subview 时阻止这种自动滚动动画?

Xcode 4.3,适用于 5.1 的 iOS SDK。

最佳答案

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

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

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

}

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

关于ios - UIScrollView 在 addSubview 或更改框架后不需要的滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176314/

相关文章:

ios - 检查 UITextfield 是否处于事件状态

ios - 无法滚动到底部 UICollectionview

ios - 以编程方式使用自动布局的 ScrollView

ios - 如何通过重用 ImageView 来创建三个 ImageView 来显示 n 个图像?

ios - subview 何时完全、正确地布局?

ios - EXC_BAD_ACCESS(SIGSEGV)和AVAudioSession

ios - 如何使由 UIPushBehavior 操纵的 View 不旋转太多?这是一个荒谬的数量

快速滚动条不滚动

iphone - UIWindow makeKeyAndVisible 与 ARC 配合不佳

ios - Swift 框架前缀?