【发布时间】:2015-03-14 10:21:43
【问题描述】:
除了标题所说的
- 主窗口左侧有一个容器视图,称之为mainContainerView(绿色背景)
- 在第二个 .xib 中,我有一个 NSTableView 设置 - 称之为 Second.xib(红色背景)
- 在 MainViewController.m 中添加 Second.xib 中定义的 NSTableView 并将约束设置如下
[_mainContainerView addConstraint:[NSLayoutConstraint constraintWithItem:_mainContainerView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:self.second.view attribute:NSLayoutAttributeBottom multiplier:1 constant:0]];
正如您在屏幕截图中看到的,当我调整窗口大小时,红色背景不会跟随主容器视图。你知道为什么会这样吗?
编辑 + 解决
为了修复这个错误,我必须为宽度/高度设置约束。我还为超级视图添加了顶部/底部对齐的约束。
【问题讨论】:
-
你已经设置了一个约束,容器的底部大于或等于表格视图的底部。结果与此一致。如果这不是你想要的,那你为什么要使用不等式?当主窗口变高时,不等式允许表格视图保持较短。
-
实际上将其设置为 equal 根本不允许窗口增长!即我不能增加高度,只能增加宽度
-
在包含表格视图的 xib 中,我假设包含表格视图的滚动视图是顶级对象(不是 xib 中任何其他视图的子视图)。如果是这种情况,请在选择滚动视图时查看 Translates Mask Into Constraints 的值。如果已选中,请尝试取消选中它,看看是否有影响。
-
@PaulPatterson 看到我的编辑。你可以看到左下角有一个点,好像大小是0? Edit2:我缺少高度/宽度的约束。
标签: objective-c xcode cocoa autolayout