如何设置UILabel的高度以与其字体大小完全匹配?

时间:2017-05-03 16:46:33

标签: ios uistoryboard

我已经制定了一个UI设计规范,其中精确指定了文本之间的间距,即此处是表格视图单元格中垂直间距的规范:

enter image description here

使用故事板和约束时的问题是,当您在故事板中放置UILabel时,其高度大于其包含的字体大小(因此您可以例如在两行之间设置6的垂直约束例如,在规范中,因为这会将UILabels设置为6分,而不是包含的文本6分开。)

这是一个清楚表达我的意思的图表:

enter image description here

这里的约束是6px。但我希望能够将Label1文本底部与标签2文本顶部之间的距离设置为6。 通过在标签之间设置6的垂直约束,这些标签内的文本之间的距离大于6.

我尝试使用自定义标签解决此问题:

@IBDesignable
class NoPaddingLabel: UILabel {
    override var alignmentRectInsets: UIEdgeInsets {
        return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    }
}

但是,尽管有@IBDesignable,但这并没有调整故事板中UILabel的高度 - 例如,如果拖放UILabel,则默认情况下系统字体大小为17,高度为21。类型从UILabel更改为NoPaddingLabel,其高度仍为21。 如果然后添加约束,那么关于垂直压缩和垂直拥抱优先级的错误音调就会发生冲突。

那么,有没有办法计算故事板中UILabel的高度以对应其字体的高度,以便更容易在文本之间设置精确的垂直约束? -

解决方案是设置文本之间的精确约束距离,而不是故事板中标签之间的距离?

0 个答案:

没有答案