我有这个相当简单的UITableViewCell。
它有一个Avatar
视图,其高度设置为34点,与单元格contentView
的顶部和底部垂直间隔10点。单元格本身设置为使用自动行高,在这里我已经看到一个小问题:行高值设置为54.5。
是的,当我检查Avatar
视图时,它的高度为34.5,即使它的要求约束是高度必须为34点,并且内容拥抱和抗压缩性都设置为1000。
当我在iPhone 11 Pro模拟器上运行该应用程序时,在控制台中收到以下警告:
(
"<NSLayoutConstraint:0x6000030a39d0 Jetfly.Avatar:0x7fabbb8e1310.height == 34 (active)>",
"<NSLayoutConstraint:0x6000030a3f70 V:|-(10)-[Jetfly.Avatar:0x7fabbb8e1310] (active, names: '|':UITableViewCellContentView:0x7fabbb8e1ab0 )>",
"<NSLayoutConstraint:0x600003088d20 Jetfly.Avatar:0x7fabbb8e1310.centerY == UITableViewCellContentView:0x7fabbb8e1ab0.centerY (active)>",
"<NSLayoutConstraint:0x600003089ea0 'UIView-Encapsulated-Layout-Height' UITableViewCellContentView:0x7fabbb8e1ab0.height == 54.3333 (active)>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x6000030a39d0 Jetfly.Avatar:0x7fabbb8e1310.height == 34 (active)>
当我查看视图层次结构时,可以看到Avatar
的高度为34,33
点。
好吧,所以它显然与分隔线有关,分隔线在11 Pro上为0.33点(这是@ 3x设备,使其成为一个像素)。我明白了。但是..如何添加不会引起这些警告的约束,更重要的是,不要更改我的Avatar
视图的高度?
答案 0 :(得分:1)
将一个垂直轴约束的优先级降低到999。我通常使用从最底部的视图到内容视图的底部的底部约束。