【问题标题】:UIScrollView and Autolayout prevent contentview compressionUIScrollView 和 Autolayout 防止 contentview 压缩
【发布时间】:2015-02-11 11:09:42
【问题描述】:

在 IB 中,我有一个包含滚动视图的视图控制器。

红色视图在滚动视图内

红色视图的最小高度为 504 像素,因此在 iphone 4 上它应该滚动,在 iphone >=5 上它应该扩展和布局按钮以填充空白。

我将红色视图的约束从滚动视图的顶部、前导、尾随和底部设置为 0,并且水平和垂直居中。 我的 redview 的最小高度为 504

蓝色和绿色视图的高度相等

对于 iphone >=5 一切正常,但对于 iphone 4,红色视图被压缩为滚动视图的大小,并且按钮相互接触。

经过多次约束调整后,我想知道是否可以通过自动布局在 IB 中 100% 做我想做的事情

【问题讨论】:

    标签: ios objective-c uiscrollview autolayout


    【解决方案1】:

    你说(强调我的:)

    “我将红色视图的约束从滚动视图的顶部、前导、尾随和底部设置为 0,并且水平和垂直居中。我的红色视图的最小高度为 504”

    首先,我可以看到一些冗余(粗体部分)。您的 redView 不需要垂直约束,因为您已经将它固定在滚动视图的边缘并具有定义的最小高度。

    但这可能是按钮靠得更近的原因,也可能不是,这取决于其他约束条件。

    您是否为按钮设置了垂直空间限制?

    【讨论】:

    • 我已经为蓝色视图设置了垂直空间限制(最小高度 12 像素)并且按钮有 60 像素的高度限制和蓝色视图的顶部和底部 0 像素
    • 删除 redview 和滚动视图的垂直居中给了我在 iphone 4 上想要的结果,但在 iphone > 5 上,redview 没有延伸到滚动视图的底部
    • 在最近的类似情况下,我选择将 redView 设置为“背景视图”。你考虑过那个选项吗?我的意思是,您可以尝试将 redView 放在滚动视图的“外部和后面”(在 IB 的分层视图中“在”滚动视图的“上方”)。事情会更容易控制/遵循这种方式。
    • 或者您可以根据您希望在包含冲突解决的方案中“占上风”的限制为您的约束应用不同的优先级。
    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2013-11-16
    相关资源
    最近更新 更多