我有一个带有静态单元格的表格视图。在其中,我选择了样式Right Detail
。
现在,我想更改右侧Detail
标签的背景颜色。即使只是标签,我也无法更改IB中的背景颜色。
所以我将其拉入View Controller以编程方式进行。
@IBOutlet weak var ukPremiumLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
ukPremiumLabel.layer.backgroundColor = UIColor(red: 0/255, green: 159/255, blue: 184/255, alpha: 1.0).cgColor
}
我也这样尝试过:
override func viewDidLoad() {
super.viewDidLoad()
ukPremiumLabel.backgroundColor = UIColor.blue
}
我不确定为什么它保持白色。
答案 0 :(得分:4)
您使用的是内置的UITableViewCell
样式,因此在创建单元格后会以某种方式覆盖单元格backgroundColor
的{{1}}。
您可以通过在更改颜色属性后对其进行解决。
为此,您可以在detailTextLabel
的覆盖willDisplay
方法中更改此颜色
UITableViewController
答案 1 :(得分:0)
您可以将IBDesignable/IBInspectable
的{{1}}注释用于
UILabel
然后在@IBDesignable
class BackgroundLabel: UILabel {
@IBInspectable var persistentBackgroundColor: UIColor = UIColor.red {
didSet {
super.backgroundColor = persistentBackgroundColor
}
}
override var backgroundColor: UIColor? {
didSet {
if backgroundColor != persistentBackgroundColor {
backgroundColor = persistentBackgroundColor
}
}
}
}
中将UITableViewCell
分配给BackgroundLabel
,