首页 > 解决方案 > Xcode @IBDesignable 按钮背景颜色未在情节提要中呈现

问题描述

尝试在情节提要中显示按钮背景颜色,以下代码正确呈现边框宽度和半径,但背景不显示。在模拟器中,按钮的背景颜色被正确渲染。

import UIKit

let colorSunset = #colorLiteral(red: 0.9693382382, green: 0.5568749309, blue: 0, alpha: 1)

@IBDesignable class PrimaryButtonA: UIButton {

    override init(frame: CGRect) {
        super.init(frame: frame)
        buttonA()
    }
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        buttonA()
    }


    func buttonA() {
        self.layer.cornerRadius = 10
        self.layer.borderWidth = 5
        self.layer.backgroundColor = colorSunset.cgColor
    }


}

代码截图

故事板截图

模拟器截图

Xcode 没有显示任何错误,但有一个不相关的警告,与按钮的固定宽度和高度有关,并且文本将被剪裁。

在此先感谢您的帮助。

标签: iosxcodeibdesignable

解决方案


这是对我有用的解决方案。

import UIKit

let colorSunset = #colorLiteral(red: 0.9693382382, green: 0.5568749309, blue: 0, alpha: 1)

@IBDesignable class PrimaryButtonA: UIButton {

override init(frame: CGRect) {
    super.init(frame: frame)
    buttonA()
}
required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    buttonA()
}

override func prepareForInterfaceBuilder() {
    super.prepareForInterfaceBuilder()
    backgroundColor = colorSunset
}


func buttonA() {
    self.layer.cornerRadius = 10
    self.layer.borderWidth = 5
    // self.layer.backgroundColor = colorSunset.cgColor
}

}

推荐阅读