【问题标题】:Interface Builder Constraints界面生成器约束
【发布时间】:2015-06-11 15:07:59
【问题描述】:

我正在尝试在界面生成器中创建这样的布局。

我正在使用约束来使这些视图可伸缩。 顶视图的左、右和顶部空间绑定到超级视图,底部空间绑定到底部视图。 底部视图的左右和底部空间绑定到superview。

在运行时,我将 ViewController 视图添加到它们。

这里的问题是底视图Y没有约束,IB显示红色错误箭头等等。那是因为我不知道它的确切高度。黄色视图是否有任何“android wrap_content”约束,其高度等于运行时添加的内部视图?

【问题讨论】:

    标签: ios objective-c view constraints


    【解决方案1】:

    为黄色视图的高度添加约束。然后为该约束添加一个 IBOutlet,以便您可以在运行时更改约束的 constant 值。如果需要计算满足黄色视图约束的大小,可以使用systemLayoutSizeFittingSize:

    或者,您可以依赖黄色视图的intrinsicContentSize。在 Interface Builder 中为视图添加占位符 Intrinsic Size。如果您的黄色视图实现了intrinsicContentSize 或具有使其具有明确高度的约束(例如,如果它包含固定在顶部和底部的UILabelUIImageView),那么这足以适当地调整查看。

    【讨论】:

      【解决方案2】:

      只需在黄色视图中添加高度约束,例如:

      NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:self.yellowView
                                                                              attribute:NSLayoutAttributeHeight
                                                                              relatedBy:NSLayoutRelationEqual
                                                                                 toItem:self.view
                                                                              attribute:NSLayoutAttributeHeight
                                                                             multiplier:0.20f
                                                                               constant:0.0f];
      heightConstraint.active = YES;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-21
        • 2018-01-27
        • 1970-01-01
        • 2015-08-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 1970-01-01
        相关资源
        最近更新 更多