我在理解代码中的约束时遇到了很多问题。我有这个在 IB 中创建和设置的容器视图,然后在该容器 NSView 的 initWithFrame 中,我像这样添加子 NSView(self 是容器视图):
childView = [[NSView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, tabContainerHeight + tabContainerTopSpace)];
[childView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self addSubview:childView];
NSLayoutConstraint *tabContainerConstraint = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0f constant:0.0f];
[childView addConstraint:tabContainerConstraint];
tabContainerConstraint = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeading multiplier:1.0f constant:0.0f];
[childView addConstraint:tabContainerConstraint];
tabContainerConstraint = [NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:0.0f];
[childView addConstraint:tabContainerConstraint];
现在的问题是子视图根本不可见,我不知道它会发生什么。我想要做的是让子视图的顶部始终恰好位于容器视图的顶部,左右两侧也是如此,因此子视图必须具有固定的高度,但始终位于容器视图的顶部然后使用容器视图拉伸到两侧(如附件图像中的解释)。
这是如何从代码中完成的?
谢谢索伦_