从UILabel移除顶部和底部填充

时间:2019-04-21 23:22:50

标签: ios swift uilabel

我有一个UILabel,但是出于某种原因,它在顶部和底部都有多余的填充。我希望标签的高度恰好是其中的文本的高度。

我一直在寻找其他问题,似乎找不到真正可行的解决方案。或者该解决方案要求您在VC的layoutSubviews方法中调用某些内容,但是我希望所有视图代码都存储在视图文件中。

有人知道如何解决此问题吗?

enter image description here

1 个答案:

答案 0 :(得分:-2)

您可以继承UILabel的子类,然后重写如下所示的drawTextInRect方法

- (void)drawTextInRect:(CGRect)rect {
    UIEdgeInsets insets = {-5,0, -5, 0}; //top,left,bottom,right
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}

或者快速

override func drawText(in rect: CGRect) {
    let insets = UIEdgeInsets.init(top: -5, left: 0, bottom: -5, right: 0)
    super.drawText(in: UIEdgeInsetsInsetRect(rect, insets))
}

根据您的需要进行更新