【问题标题】:Xcode 5 iOS 7 - UIScrollView behaving oddlyXcode 5 iOS 7 - UIScrollView 行为异常
【发布时间】:2013-10-03 17:24:11
【问题描述】:

从 Xcode 4 iOS 6 迁移项目时,我注意到 UIScrollView 实例的行为不正常。有时它似乎只是卡住了,只有当我捏入或张开以更改比例时,它才开始正常滚动。

我注意到一个类似问题的一些回复,沿着删除定位约束的思路,我尝试过(即使我最终确实需要约束)但它没有工作。

有没有人遇到过这种行为并找到解决方法?

【问题讨论】:

  • 确保setContentSizeviewWillLayoutSubviewsscrollViewDidEndZooming:withView:atScale: 中。在 iOS6 中,如果您没有这些方法中的代码,则默认行为可以正常工作,在 iOS7 中使用新的布局系统时,它们是必需的。
  • 意思是viewDidLayoutSubviews,它可能会被多次调用以进行设置,请继续调用seContentSize
  • 谢谢。现在正在工作。会奖励你积分,但问题已关闭。
  • @RussellHarper 它有效!很棒的提示。
  • 无法添加答案,因为它已关闭,但对我来说,WTF 是需要设置 self.automaticallyAdjustsScrollViewInsets = NO;在 iOS7 中默认是 YES,但如果你有嵌套的滚动视图,你可能需要将它设置为 NO。 (我没有 vert 滚动,但是一旦 horz 滚动开始,那么在 iOS7 中 vert 就成为可能,这很烦人。改变这个修复了它)

标签: uiscrollview ios7 xcode5


【解决方案1】:

我能够通过使用使其工作

self.automaticallyAdjustsScrollViewInsets = NO;

在持有滚动视图的视图控制器中。只需将其放在滚动视图的实例化之后即可。

【讨论】:

  • 看起来很有希望,会尽快试用并通知您!
【解决方案2】:

确保setContentSize 位于viewDidLayoutSubviewsscrollViewDidEndZooming:withView:atScale: 中。在 iOS6 中,如果您没有在这些方法中调用 setContentSize,默认行为可以正常工作,在 iOS7 中使用新的布局系统,它们是必需的。 viewDidLayoutSubviews 可能会被多次调用以进行设置,请继续调用setContentSize

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多