与常规的NSStackView相比,NSView还有两个额外的优先级,即clippingResistancePriority和huggingPriority.,文档提供了一些合理的解释,说明了它们的用途和它们所做的事情。
但4个优先事项有点过头了。
现在,在上述文件中,他们提到:
堆栈视图没有内部内容大小,也没有可配置的内容压缩抵抗能力。在堆栈视图上调用
setContentCompressionResistancePriority:forOrientation:方法没有任何效果。
然而,contentHuggingPriority被留在了阴影中。NSStackView似乎也没有对此做出反应--至少我没能做到这一点。
有谁能证实或反驳这一点吗?
发布于 2016-09-06 01:00:51
是的,这是正确的。从NSView继承的内容约束优先级:
- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7); - (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
仅适用于基于视图的intrinsicContentSize创建的约束,而NSStackView没有这些约束。所以就像你和文档提到的那样,它们没有效果。(除非您将NSStackView子类并重写intrinsicContentSize以给它一些价值.)
https://stackoverflow.com/questions/39299560
复制相似问题