我有一个UILabel
但由于某种原因它在顶部和底部有额外的填充。我希望标签的高度正好是其中文本的高度。
我一直在寻找其他问题,似乎找不到真正有效的解决方案。或者解决方案要求您在VC的layoutSubviews
方法中调用某些内容,但我希望将所有视图代码存储在我的视图文件中。
有谁知道如何解决这一问题?
您可以继承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))
}
根据您的需要更新它