【问题标题】:cocoa: weird purple constraint for split view可可:拆分视图的奇怪紫色约束
【发布时间】:2012-09-17 16:12:23
【问题描述】:

如果我添加三个拆分视图如下图所示,第三个拆分视图(称为 splitView-3)将自动为该拆分视图中的自定义视图生成一个约束,例如 customview1 的 Height(42)。结果,我无法在 Interface Builder 中更改 customview1 的高度。

为什么 Interface Builder 会自动为 customview1 生成紫色约束,例如 Height(43)?

任何帮助将不胜感激。

【问题讨论】:

    标签: cocoa autolayout


    【解决方案1】:

    它生成它是因为您在其父视图中手动将视图大小调整为特定高度。将约束(在大小实用程序面板中)提升为用户约束并将其删除。如果不是一路走来,那应该能让你获得最大的收益(但如果没有看到你的约束配置的其余部分,我就无法判断)。

    【讨论】:

    • 谢谢,但是“您手动将视图调整到其父视图中的特定高度”是什么意思?因为我没有在拆分视图中添加任何约束,所以我只是将它们从 IB 中拖了出来。我尝试提升约束并在大小实用程序面板中将其删除,但结果是约束在提升后变为蓝色,然后在删除后变为紫色。您需要哪种约束配置?我已经更新了我的图片。
    【解决方案2】:

    Joshua 是对的……但我认为有一点需要解释一下。

    Xcode 需要约束来确定所有项目的位置和大小。它之所以坚持紫色,是因为没有足够的限制来满足这些需求,而无需额外增加一些。

    因此,Xcode 坚持高度约束,这意味着它无法根据现有约束确定高度。您可以通过添加约束来定义它:

    • 高度等于某些其他项目的高度
    • 通过设置底部距离 X 点距另一个项目
    • 通过设置相对于它的超级视图的底部位置
    • 或者....好吧,还有很多,但希望你能明白

    一旦你添加了一个让 Xcode 知道视图高度的约束,那个紫色的要么消失要么变成蓝色,所以你可以删除它并且让它不再回来。

    【讨论】:

      猜你喜欢
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 2017-09-01
      • 2016-10-22
      • 1970-01-01
      相关资源
      最近更新 更多