从UILabel移除顶部和底部填充

问题描述 投票:2回答:1

我有一个UILabel但由于某种原因它在顶部和底部有额外的填充。我希望标签的高度正好是其中文本的高度。

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

有谁知道如何解决这一问题?

enter image description here

ios swift uilabel
1个回答
-3
投票

您可以继承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))
}

根据您的需要更新它

© www.soinside.com 2019 - 2024. All rights reserved.