1

在我拥有的 Storyboard 中UITextField,我还创建了自定义类:

class WLTextField: UITextField {

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

        layer.cornerRadius = 2
        layer.masksToBounds = true
        layer.borderColor = UIColor.grayColor().CGColor
        layer.borderWidth = 1
    }
}

然后将这个类附加到我的UITextField

在此处输入图像描述

但是,Storyboard 中没有结果。我怎样才能做到这一点?我需要像@IBDesignables. 但是因为我知道我需要为每个文本字段设置什么,所以我不需要设置一个值然后在didSet.

我是否需要设置至少一个值才能在某些 UIView 上的 Storyboard 中进行实时更改?

4

1 回答 1

2

为了让组件在 Interface Builder 中呈现,您必须将类标记为@IBDesignable并且您必须实现初始化init(frame: CGRect)-

@IBDesignable class WLTextField: UITextField {

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

    required override init(frame: CGRect) {
        super.init(frame: frame)
        setupLayer()
    }

    func setupLayer () {
        layer.cornerRadius = 2
        layer.masksToBounds = true
        layer.borderColor = UIColor.grayColor().CGColor
        layer.borderWidth = 1
    }
}
于 2015-08-31T12:07:32.220 回答