内容拥抱优先级与自动布局的行为不同
Content hugging priority behaves different with auto layout
在学习内容拥抱优先级时,我想到了一个奇怪的场景,我使用了 2 个标签,1 个绿色和 2 个蓝色。
这些标签的内容拥抱优先级就像
绿色 - 水平拥抱优先级 200
蓝色 - 水平拥抱优先级 251
Green.text = "你好"
Blue.text = "How are you?, have a good day, 大文
此处绿色标签文本被截断,蓝色标签显示全文。
现在的问题是,当我尝试反转标签和文本的优先级时,它的工作方式与上面不同。
现在是新的优先级
绿色 - 水平拥抱优先级 251
蓝色 - 水平拥抱优先级 200
Green.text = "你好吗,祝你有个美好的一天,大文
Blue.text = "你好"
现在我认为绿色应该显示所有文本而不是截断它,而蓝色应该被截断。但它没有发生,我想知道为什么这不起作用?我是否遗漏或遗漏了对这个概念的解释?
如有错误请指正。谢谢
您需要增加绿色标签的内容压缩阻力优先级。
在堆栈视图(属性检查器)"Distribution" 类别的下拉菜单中尝试 selecting "Fill Proportionately"。
确保您select在 Stack View 上编辑。
单击属性检查器菜单
单击分布和 select "Fill Proportionately"
不确定在这样做时是否需要对每个元素的 "Content Compression Resistance Priority" 或 "Content Hugging Priority" 做任何事情;你可以尝试使用和不使用它(具有较低压缩阻力设置的元素允许元素被压缩,而较高的拥抱优先级数字意味着该元素将倾向于抓住更多 space)并查看它是否有任何不同。
对我来说,Fill Proportionately 解决了整个问题,我把上面提到的两个Priorities调回中立(每个元素的编号相同)。在这张图片拍摄之前,"Baseball Sunsetters" 被截断了,因为它和数字元素 ("1") 在堆栈视图中占据了相同数量的水平 space。之后(照片):Name Label 向右移动,Members Label 压缩(不使用压缩或拥抱优先级)
有时 Content Hugging 效果很好,但请查看其文档以了解更多详细信息。
在学习内容拥抱优先级时,我想到了一个奇怪的场景,我使用了 2 个标签,1 个绿色和 2 个蓝色。
这些标签的内容拥抱优先级就像
绿色 - 水平拥抱优先级 200
蓝色 - 水平拥抱优先级 251
Green.text = "你好"
Blue.text = "How are you?, have a good day, 大文
此处绿色标签文本被截断,蓝色标签显示全文。
现在的问题是,当我尝试反转标签和文本的优先级时,它的工作方式与上面不同。
现在是新的优先级
绿色 - 水平拥抱优先级 251
蓝色 - 水平拥抱优先级 200
Green.text = "你好吗,祝你有个美好的一天,大文
Blue.text = "你好"
现在我认为绿色应该显示所有文本而不是截断它,而蓝色应该被截断。但它没有发生,我想知道为什么这不起作用?我是否遗漏或遗漏了对这个概念的解释?
如有错误请指正。谢谢
您需要增加绿色标签的内容压缩阻力优先级。
在堆栈视图(属性检查器)"Distribution" 类别的下拉菜单中尝试 selecting "Fill Proportionately"。
确保您select在 Stack View 上编辑。 单击属性检查器菜单 单击分布和 select "Fill Proportionately"
不确定在这样做时是否需要对每个元素的 "Content Compression Resistance Priority" 或 "Content Hugging Priority" 做任何事情;你可以尝试使用和不使用它(具有较低压缩阻力设置的元素允许元素被压缩,而较高的拥抱优先级数字意味着该元素将倾向于抓住更多 space)并查看它是否有任何不同。
对我来说,Fill Proportionately 解决了整个问题,我把上面提到的两个Priorities调回中立(每个元素的编号相同)。在这张图片拍摄之前,"Baseball Sunsetters" 被截断了,因为它和数字元素 ("1") 在堆栈视图中占据了相同数量的水平 space。之后(照片):Name Label 向右移动,Members Label 压缩(不使用压缩或拥抱优先级)
有时 Content Hugging 效果很好,但请查看其文档以了解更多详细信息。