【问题标题】:iOS 8 AutoLayout scrollview scrolls horizontally on iPhone 6 plusiOS 8 AutoLayout 滚动视图在 iPhone 6 plus 上水平滚动
【发布时间】:2014-11-25 10:34:09
【问题描述】:

我确实有一个适用于 iOS 的应用程序,在调整所有 UI 以自动布局大小类以支持新的 iPhone 6 和 iPhone 6 plus 时,我遇到了一个奇怪的问题......我的滚动视图在 iPhone 4s 中工作正常, 5、5s 和 6 ......在 iPhone 6 plus 中,它们不仅垂直滚动,而且水平滚动......就像滚动视图的内容大小比视图本身宽几个像素(所以它水平移动几个像素然后反弹)。 我不明白为什么会这样……

【问题讨论】:

    标签: ios uiscrollview autolayout iphone-6-plus


    【解决方案1】:

    我终于找到了让它工作的正确方法......我是这样做的:

    查看层次结构:
    - UIView(主视图) - UIScrollView(我希望与主视图具有相同的确切大小) - UIView(包含要在滚动视图中显示的所有内容的容器视图)

    约束:

    容器视图:
    - 宽度等于主视图之一 - 0 前导、尾随、顶部和底部边距与超级视图(即滚动视图)

    UIScrollView:
    - 宽度等于主视图之一
    - 水平 X 轴中心视图(中心 X)
    - 0 顶部与超级视图的底部边距

    【讨论】:

    • 这对我不起作用。我也不明白为什么上述方法会起作用,因为内容视图控制 UIScrollView 而您设置了 UIScrollView 的宽度
    • 我猜我的问题是由滚动视图到其父视图的前导和尾随空间中的 -16 约束引起的,如果我说我希望滚动视图是由 Interface Builder 默认添加的窗口大小相同(宽度不同......如果我拖动滚动视图的边框以匹配窗口的边框,则会添加它)。将约束放在滚动视图的宽度上并以 X 为中心为我提供了一组一致的约束,让我希望滚动视图看起来像
    • @kgaidis - iOS 做了一些时髦的事情来使滚动视图与自动布局一起工作:Apple tech note UIScrollView And Autolayout 另一种方法是在布局完成后直接在代码中自己设置 UIScrollView.contentSize。从技术说明来看,对内部内容的约束似乎并不像您认为的那样 - 它们不是决定滚动区域大小的因素。
    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多