【问题标题】:UILabel autolayout cut bottom pixelsUILabel 自动布局剪切底部像素
【发布时间】:2014-08-13 15:10:56
【问题描述】:

我从 xib 构造 UITableCellView。这个xib使用autolayout和两个UILabels连接到superview并且有垂直约束。

不幸的是,它正在切割UILabel 底部的像素:

我错过了什么?

UPD。 Xcode 给我错误:Set vertical compression resistance priority to 749。如果我玩抗压优先,我会得到第一个标签。

【问题讨论】:

    标签: ios uilabel autolayout pixels


    【解决方案1】:

    设置两个标签之间的垂直间距约束的优先级低于标签与视图顶部和底部之间的垂直间距约束。或者,在您的委托中,覆盖

    - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    这将返回一个可以容纳约束和标签高度的高度。默认情况下,我相信您会获得 44 像素,因此您可以通过覆盖这些像素来获得更高的单元格。此外,如果您使用 Storyboard 或 Nib,您可以在 IB 中设置单元格高度。

    【讨论】:

    • 增加单元格高度没有帮助。我还用 xcode 错误更新问题
    • 有趣的是,我通常不会费心改变压缩阻力,因为我喜欢让我的元素不压缩,只给它们足够的空间。 @EugenMartynov 您是否尝试在 IB 的 UITableViewCell 上将单元格高度更改为自定义?
    • 我忘了提到改变标签之间约束的优先级也没有帮助。但是这个约束是常数 1。所以当它计算单元格的高度时,这可能是一个问题。
    • 高度已经是自定义的,增加高度没有帮助
    • 通常情况下,如果标签没有足够的空间来满足其所有约束,它会破坏具有最低优先级的约束。您应该看到的是,如果标签没有足够的空间,它们就会开始相互碰撞。您确实有以下限制,对吗?单元格顶部和第一个标签之间的垂直,顶部标签和底部标签之间的垂直以及底部标签和单元格底部之间的垂直?您不需要做任何其他事情。
    猜你喜欢
    • 2016-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多