是否可以使@IBDesignable覆盖Interface Builder值?

ork*_*ein 6 xcode interface-builder swift ibdesignable

例如,我想要子类化UIButton20.0f默认设置它的字体.我可以这样写:

@IBDesignable

class HCButton: UIButton {
  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    self.customInit()
  }

  func customInit () {
    titleLabel?.font = UIFont.systemFontOfSize(20)
  }
} 
Run Code Online (Sandbox Code Playgroud)

但这不会影响Interface Builder中的预览,15.0f默认情况下所有自定义按钮都会显示字体大小.有什么想法吗?

Ash*_*kad 4

我创建了新IBInspectabletestFonts

import UIKit

@IBDesignable

class CustomButton: UIButton {
    override init(frame: CGRect) {
        super.init(frame: frame)
        self.customInit()
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        self.customInit()
    }

    func customInit () {
        titleLabel?.font = UIFont.systemFontOfSize(20)
    }

    convenience init() {
        self.init(frame:CGRectZero)
        self.customInit()
    }

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

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()
        self.customInit()
    }
}
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助:)

这对我有用。