与常规的相比,NSStackView
有两个额外的优先级,即NSView
和clippingResistancePriority
文档提供了一个合理的解释,说明了它们的用途和作用。
但4个优先事项有点过分。
现在,在上述文件中,他们提到:
堆栈视图没有内部内容大小,也没有可配置的内容压缩阻力。对堆栈视图调用huggingPriority.
方法没有效果。
但是,setContentCompressionResistancePriority:forOrientation:
留在阴影中。
似乎contentHuggingPriority
对这一点也没有反应——或者至少我没能做到。
有人能证实或反驳这一点吗?
最佳答案
是的,这是正确的。从nsview继承的内容约束优先级:- (NSLayoutPriority)contentHuggingPriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);- (NSLayoutPriority)contentCompressionResistancePriorityForOrientation:(NSLayoutConstraintOrientation)orientation NS_AVAILABLE_MAC(10_7);
仅适用于基于视图的intrinsicContentSize
创建的约束,而nsstackview没有该约束。所以就像你和文档中提到的,它们没有任何效果。
(除非您将nsstackview子类化并重写intrinsicContentSize
以赋予它一些值…)
关于objective-c - NSStackView和内容拥抱优先级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39299560/