【问题标题】:iOS UILabel size issueiOS UILabel 大小问题
【发布时间】:2017-04-20 13:36:40
【问题描述】:

我在写问题之前搜索了 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,我仍然会得到这个烦人的顶部填充。

知道如何解决这个问题吗?

谢谢!

【问题讨论】:

  • 你试过 sizeToFit 吗?
  • 你不喜欢什么?我没有看到任何“顶部填充”。
  • @danh 是的,它没有用
  • @matt 在黄色背景中的实际文本上方有 4 个点 :) 黄色背景是我添加的 UILabel 背景,让你们看看我在说什么。
  • 标签提供了一些前导空间。这个是正常的。别担心,开心就好。

标签: ios iphone swift


【解决方案1】:

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

您的标签有黄色背景,您要删除的边距在标签之外,因此再多的子类化也不会删除它。

将标签添加到屏幕的方式(在代码或 Interface Builder 中,通过约束或框架)定义了这些边距,也就是您需要调整以修复边距的方式。

【讨论】:

  • 感谢回复,我加了黄色背景,让你们看我在说什么,不是空白,空白是视图,我的问题是额外的黄色文本上方的空间。黄色是Label的背景,这不是必需的,我希望顶部停止在文本的边缘,没有那些额外的4点
  • 我换了图片,现在我猜我说的是哪个空间更清楚了
猜你喜欢
  • 1970-01-01
  • 2015-03-03
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多