ios uilabel尺寸问题



我在写问题之前搜索了4个小时,我在网上看到的答案都没有解决此问题。

我正在制作iOS应用程序,在故事板上,当我使用uilabel时,无论我做什么,总有额外的填充,这会导致我一个大问题,因为我尝试了具有像素完美设计。

我仍然不明白这是从哪里来的,我尝试使用纯文本,并且尝试了归因的字符串,都仍然给出了额外的填充:

屏幕截图:http://imgur.com/fldcodl

我试图用以下内容将标签列为:

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,我仍然会得到这个烦人的顶部填充。

任何想法如何解决?

谢谢!

假设您想删除标签周围的空白(从您的问题中不完全清楚)。

您的标签具有黄色背景,您要删除的边距在标签外,因此任何子类别都不会删除它。

将标签添加到屏幕的方式(在代码或接口构建器中,通过约束或帧)是定义这些保证金的方法,这就是您需要进行调整以固定空间的方法。

最新更新