我在一个NSView的1个垂直NSStackView中有2个水平的NSStackView。即使有约束,我似乎也无法调整整个视图的大小。如果通过拖动IB视图手柄增加宽度,则视图将增大。但是似乎如果我尝试通过将IB视图手柄向彼此拉来缩小它们,则堆栈视图停止缩小父视图宽度为800 pix。有办法解决这个问题吗?
答案 0 :(得分:1)
如果您希望垂直NSStackView
内的子视图填充其父级宽度,请减小contentCompressionResistancePriority
myChildView.translatesAutoresizingMaskIntoConstraints = false
myChildView.setContentCompressionResistancePriority(
NSLayoutConstraint.Priority(rawValue: 1),
for: .horizontal
)
NSLayoutConstraint.activate([
myChildView.heightAnchor.constraint(equalToConstant: 50)
])
NSAnimationContext.runAnimationGroup({context in
context.duration = 0.25
context.allowsImplicitAnimation = true
stackView.insertArrangedSubview(myChildView, at: 1)
view.layoutSubtreeIfNeeded()
}, completionHandler: nil)
答案 1 :(得分:0)
添加了单个水平NSStackView(先前的注释)后,我添加了两个垂直NSStackView,然后将内容压缩阻力优先级设置为最低设置(250)。