gpt4 book ai didi

ios - IBDesignable 类似乎无法正常工作

转载 作者:行者123 更新时间:2023-11-28 07:32:32 37 4
gpt4 key购买 nike

我正在使用 swift 构建一个新的 iOS 应用程序,并尝试制作一个自定义的 IBDesignable UIButton 类以在设计器中使用。我的代码在运行时似乎在构建器或应用程序本身中都不起作用。我给 IBInspectable 变量的默认值不适用于它们。

@IBDesignable class MyButton: UIButton {

@IBInspectable var backColor: UIColor = UIColor.red {
didSet {
self.backgroundColor = backColor
}
}

@IBInspectable var textColor: UIColor = UIColor.white {
didSet {
self.setTitleColor(textColor, for: .normal)
}
}

override init(frame: CGRect) {
super.init(frame: frame)
setup()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}

override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setup()
}

private func setup() {
titleLabel?.font = UIFont.systemFont(ofSize: 17)
contentEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0)
layer.cornerRadius = (frame.height / 2)
setTitle(title(for: .normal)?.uppercased(), for: .normal)
}
}

我希望在设计器/应用程序中看到红色背景和白色文本的按钮,但这些都没有发生。我使用的是 Swift 4.2 和 Xcode 10.1。

最佳答案

添加这两个函数

  override func awakeFromNib() {
super.awakeFromNib()
self.setup()
}

override func layoutSubviews() {
super.layoutSubviews()
self.setup()
}

不需要初始化

关于ios - IBDesignable 类似乎无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54274724/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com