【问题标题】:Xcode @IBDesignable Button Background Color Not Rendering In StoryboardXcode @IBDesignable 按钮背景颜色未在情节提要中呈现
【发布时间】:2018-08-27 03:27:16
【问题描述】:

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

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
    }


}

Code Screenshot

Storyboard Screenshot

Simulator Screenshot

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

提前感谢您的帮助。

【问题讨论】:

  • @Kazi,我在发布问题之前确实看过那篇文章,但该解决方案对我不起作用,或者我可能实施错误。这个问题也是在 2016 年发布的,我希望在 2018 年有更好的解决方案。
  • @Raj 请仔细阅读该重复问题的答案,您将了解为什么故事板中的背景颜色没有改变。我相信这个答案也适用于 2018 年。如果您找到更好的解决方案,请告诉我们。谢谢。
  • @KaziAbdullahAlMamun 是的,我也实现了覆盖函数,但同样的问题,不在情节提要中渲染背景颜色,但在模拟器中渲染。
  • @Raj 但重写方法对我有用。

标签: ios xcode ibdesignable


【解决方案1】:

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

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
}

}

【讨论】:

    【解决方案2】:

    没有办法解决这个问题。出现此问题是因为有时情节提要无法识别 IBDesignables。当您重新启动 XCode 时,有时它会被识别,有时则不会。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      • 2013-12-31
      • 2013-06-24
      • 2019-09-29
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      相关资源
      最近更新 更多