gpt4 book ai didi

ios - 在 UILabel 上设置 insets

转载 作者:搜寻专家 更新时间:2023-10-30 22:02:10 24 4
gpt4 key购买 nike

我正在尝试在 UILabel 中设置一些插图。它工作得很好,但现在 UIEdgeInsetsInsetRect 已被 CGRect.inset(by:) 取代,我找不到解决方法。

当我尝试将 CGRect.inset(by:) 与我的插图一起使用时,我收到的消息是 UIEdgeInsets 无法转换为 CGRect.

我的代码

class TagLabel: UILabel {

override func draw(_ rect: CGRect) {
let inset = UIEdgeInsets(top: -2, left: 2, bottom: -2, right: 2)

super.drawText(in: CGRect.insetBy(inset))
// super.drawText(in: UIEdgeInsetsInsetRect(rect, inset)) // Old code
}

}

有人知道如何设置 UILabel 的插图吗?

最佳答案

恕我直言,您还必须更新 intrinsicContentSize:

class InsetLabel: UILabel {

let inset = UIEdgeInsets(top: -2, left: 2, bottom: -2, right: 2)

override func drawText(in rect: CGRect) {
super.drawText(in: rect.inset(by: inset))
}

override var intrinsicContentSize: CGSize {
var intrinsicContentSize = super.intrinsicContentSize
intrinsicContentSize.width += inset.left + inset.right
intrinsicContentSize.height += inset.top + inset.bottom
return intrinsicContentSize
}

}

关于ios - 在 UILabel 上设置 insets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51039489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com