UILabel自动布局裁剪底部像素

7

我从xib中构建了UITableCellView,这个xib使用了autolayout和两个连接到superview并具有垂直约束的UILabel

不幸的是,它在UILabel底部剪切像素: enter image description here

我错过了什么?

更新。 Xcode给我错误:将垂直压缩阻力优先级设置为749。如果我尝试调整压缩阻力优先级,则会使第一个标签被切断。

1个回答

2
将两个标签之间的垂直间隔约束的优先级设置为低于标签与视图顶部和底部之间的垂直间隔约束。或者,在您的委托中覆盖以下方法:
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
以及
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
这将返回适应约束和标签高度的高度。默认情况下,高度为44像素,因此您可以通过重写这些方法来获取更高的单元格高度。此外,如果您使用故事板或nib,则可以在IB中设置单元格高度。

增加单元格高度并没有帮助。我还使用Xcode错误更新了问题。 - Eugen Martynov
有趣的是,我通常不会费心去更改压缩阻力,因为我喜欢保持我的元素未压缩,并只给它们足够的空间。@EugenMartynov 你在IB中尝试将UITableViewCell的单元格高度更改为自定义了吗? - Sandy Chapman
通常情况下,如果标签没有足够的空间来满足其所有约束条件,它会打破优先级最低的那个。您应该看到的是,如果标签没有足够的空间,它们就会开始彼此碰撞。您是否有以下约束条件?单元格顶部和第一个标签之间的垂直线、顶部标签和底部标签之间的垂直线,以及底部标签和单元格底部之间的垂直线?您不需要做任何其他操作。 - Sandy Chapman
我有一个额外的限制条件,实际上是在缩小。 - Eugen Martynov
如果您有一个多行标签,则此答案不正确。 - Jonny
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接