我正在尝试使用NSLayoutConstraint
s 设置视图的布局。
我可以在视图中正确设置内容,但如果约束需要,我还需要能够调整当前视图(我为其设置约束的视图)的大小。换句话说,我想用一个灵活的窗口设置一个固定的内容大小,而不是相反。
所以基本上,我有:
NSDictionary *views = [NSDictionary dictionaryWithObjectsAndKeys:self.v1, @"v1",
self.v2, @"v2",
nil];
// Set horizontal constraints
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[v1]-|"
options:0
metrics:nil
views:views]];
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[v2]-|"
options:0
metrics:nil
views:views]];
// Set vertical constraints
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[v1]-[v2]-|"
options:0
metrics:nil
views:views]];
// Initialise height constraint for v1
self.v1Height = [NSLayoutConstraint constraintWithItem:self.v1
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:50];
如果我稍后更改self.v1Height
(通过删除它,重新创建它,然后读取它),我希望框架self
扩展(或收缩)以适应更改的高度。
我不确定它是否相关(因为我对 iOS 比对 OS X 更熟悉),但这是NSPopover
.
我需要添加什么约束来实现这一点?