最小单元格高度 - 自动布局
Minimum cell height - Autolayout
我有一些 Autolayout 单元格 - 但希望它们具有最小高度,如果第二个标签不包含任何文本(例如在表单中)
我认为最简单的方法应该是创建一个优先级为 999 的附加约束来设置最小高度,就像那张照片中那样:
但是,标签 ("Mayer Thomas") 不再自动调整大小了。
解决此类问题的最佳方法是什么?我可以创建 2 个布局,但在我看来这不是一个好的解决方案。
为此,您需要使用 EqualHeights 并相应地更改乘数,它们将自行调整大小。
要做到这一点,只需按 CTRL+将标签拖到单元格上即可提供相同的高度,然后将乘数更改为 1,将其更改为您想要的任何值。例如:- 0.5 表示它将占用单元格高度的一半。
将可选标签的高度限制设置为大于或等于任何你想要的高度。此外,将标签的 压缩阻力 和 内容拥抱 设置为必需。如果有更多内容,您的标签现在应该占用额外的高度,或者只采用设置的最小尺寸。
[label addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0 constant:15/*the min height you need*/]];
[label setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
我有一些 Autolayout 单元格 - 但希望它们具有最小高度,如果第二个标签不包含任何文本(例如在表单中)
我认为最简单的方法应该是创建一个优先级为 999 的附加约束来设置最小高度,就像那张照片中那样:
但是,标签 ("Mayer Thomas") 不再自动调整大小了。
解决此类问题的最佳方法是什么?我可以创建 2 个布局,但在我看来这不是一个好的解决方案。
为此,您需要使用 EqualHeights 并相应地更改乘数,它们将自行调整大小。
要做到这一点,只需按 CTRL+将标签拖到单元格上即可提供相同的高度,然后将乘数更改为 1,将其更改为您想要的任何值。例如:- 0.5 表示它将占用单元格高度的一半。
将可选标签的高度限制设置为大于或等于任何你想要的高度。此外,将标签的 压缩阻力 和 内容拥抱 设置为必需。如果有更多内容,您的标签现在应该占用额外的高度,或者只采用设置的最小尺寸。
[label addConstraint:[NSLayoutConstraint constraintWithItem:label attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:0 constant:15/*the min height you need*/]];
[label setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[label setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];