【问题标题】:Proportional distance constraints in auto layout自动布局中的比例距离约束
【发布时间】:2013-07-18 09:27:49
【问题描述】:

我无法使用 >iOS6 中的自动布局来实现所需的视图布局。

我有固定到父视图的 UIView1 和 UIView3(对应于 TopSpaceToSuperview、BottomSpaceToSuperView 和 FixedHeight),当父视图改变高度时它们的行为与预期一样。

当父视图改变高度时,如果我希望 UIView2 与其兄弟(UIView1 和 UIView3)保持相同的比例距离,我应该在 IB 中为 UIView2 指定哪些约束? (如图所示)

【问题讨论】:

    标签: ios ios6 uiviewcontroller autolayout


    【解决方案1】:

    这样做的方法是在视图之间使用不可见的“间隔”视图。

    您不能拥有相对大小的空间,因此请改用这些视图。

    当前空间在哪里放置一个 UIView。

    然后(在代码中,因为您无法在 IB 中执行此操作)使用您想要的正确乘数在这些之间设置高度约束。

    [NSLayoutConstraint constraintWithItem1:spacer2
                                  attribute:NSLayoutAttributeHeight
                                   relation:NSLayoutRelationEqual
                                      item2:spacer1
                                  attribute:NSLayoutAttributeHeight
                                 multiplier:0.5
                                   constant:0];
    

    然后让其他视图以 0 间距“粘贴”在这些间隔视图的上方和下方。

    然后您只需隐藏这些视图,然后自动布局将处理其余部分。

    【讨论】:

    • 我不知道这个功能是什么时候添加到 xcode 中的,但现在你可以在 IB 中设置该约束。
    • @Sikander 随意。这是一个三年前的答案。添加到 Xcode 的部分是能够更改约束的乘数。
    猜你喜欢
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多