无法在静态单元格中更改UILabel的backgroundColor

时间:2018-12-27 19:45:23

标签: ios swift xcode uilabel

我有一个带有静态单元格的表格视图。在其中,我选择了样式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
}

我不确定为什么它保持白色。

enter image description here

2 个答案:

答案 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

Image