UILabel 图层背景色部分填充意外
UILabel layer background color partial fill unintended
目前显示的标签在右上角和右下角设置了自定义半径。但是,标签的背景颜色并未完全填充。
已尝试将图层 maskToBounds
属性 设置为 true 和 false。
尝试以编程方式将 dateLabel.backgroundColor
和 dateLabel.layer.backgroundColor
更改为故事板中默认的所需深蓝色,试图重新填充标签但没有成功。
@IBOutlet weak var dateLabel: UILabel! { didSet {
dateLabel.round(corners: [.topRight, .bottomRight], radius: 15, borderColor: UIColor.cyan, borderWidth: 3.0)
dateLabel.setNeedsLayout()
}}
override func viewDidLayoutSubviews() {
dateLabel.layoutIfNeeded()
}
override func viewDidLoad() {
super.viewDidLoad()
dateLabel.layer.backgroundColor = UIColor.blue
}
标签未完全填满其视图的可能原因是什么?有什么解决方案可用?
问题肯定是角函数的使用,它将子层添加到您的 UIlable ,每个子层都有自己的背景颜色,因此您可以找到另一种圆角方式而不使用添加子层的函数或在您的viewDidLoad 遍历层 layer.sublayers
的子层 属性 ,这是一个子层数组,并将背景颜色应用于每个子层,或者向 UIView 扩展(角函数)添加一个函数来实现这种颜色之王赋值然后调用该函数。
目前显示的标签在右上角和右下角设置了自定义半径。但是,标签的背景颜色并未完全填充。
已尝试将图层 maskToBounds
属性 设置为 true 和 false。
尝试以编程方式将 dateLabel.backgroundColor
和 dateLabel.layer.backgroundColor
更改为故事板中默认的所需深蓝色,试图重新填充标签但没有成功。
@IBOutlet weak var dateLabel: UILabel! { didSet {
dateLabel.round(corners: [.topRight, .bottomRight], radius: 15, borderColor: UIColor.cyan, borderWidth: 3.0)
dateLabel.setNeedsLayout()
}}
override func viewDidLayoutSubviews() {
dateLabel.layoutIfNeeded()
}
override func viewDidLoad() {
super.viewDidLoad()
dateLabel.layer.backgroundColor = UIColor.blue
}
标签未完全填满其视图的可能原因是什么?有什么解决方案可用?
问题肯定是角函数的使用,它将子层添加到您的 UIlable ,每个子层都有自己的背景颜色,因此您可以找到另一种圆角方式而不使用添加子层的函数或在您的viewDidLoad 遍历层 layer.sublayers
的子层 属性 ,这是一个子层数组,并将背景颜色应用于每个子层,或者向 UIView 扩展(角函数)添加一个函数来实现这种颜色之王赋值然后调用该函数。