我在写我的问题之前搜索了4个小时,我在网上看到的答案都没有解决这个问题。
我正在使用iOS应用程序,在故事板中,当我使用UILabel时,无论我做什么,总会有额外的填充,这导致我这是一个很大的问题,因为我试图设计一个像素完美的设计。
我仍然不明白这是从哪里来的,我尝试使用纯文本,我尝试了归因字符串,两者仍然提供了额外的填充:
我尝试使用以下内容对标签进行子类化:
var textInsets = UIEdgeInsets.zero {
didSet { invalidateIntrinsicContentSize() }
}
override var bounds:CGRect {
get {
return super.bounds
}
set {
super.bounds = newValue
if (self.preferredMaxLayoutWidth != super.bounds.size.width) {
self.preferredMaxLayoutWidth = super.bounds.size.width;
self.setNeedsUpdateConstraints()
}
}
}
override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
let insetRect = UIEdgeInsetsInsetRect(bounds, textInsets)
let textRect = super.textRect(forBounds: insetRect, limitedToNumberOfLines: numberOfLines)
let invertedInsets = UIEdgeInsets(top: -textInsets.top,
left: -textInsets.left,
bottom: -textInsets.bottom,
right: -textInsets.right)
return UIEdgeInsetsInsetRect(textRect, invertedInsets)
}
override func drawText(in rect: CGRect) {
super.drawText(in: UIEdgeInsetsInsetRect(rect, textInsets))
}
即使将左上角的左下角的值设置为0,我仍然会遇到令人讨厌的顶部填充。
知道如何解决这个问题吗?
谢谢!
答案 0 :(得分:-1)
假设您要删除标签周围的空白区域(问题不完全清楚)。
您的标签背景为黄色,您尝试删除的边距位于标签之外,因此没有任何子类化将删除它。
将标签添加到屏幕(在代码或界面生成器中,通过约束或框架)的方式是定义这些边距的内容,也就是您需要调整以修复边距的内容。