我有以下代码来创建自定义IBDesignable UIButton。请注意,我没有任何IBInspectables,因为我不需要任何IBInspectables。我希望我的所有自定义按钮都相同。
import UIKit
@IBDesignable class ShButton: UIButton {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self._setup()
}
override init(frame: CGRect) {
super.init(frame: frame)
self._setup()
}
override func awakeFromNib() {
self._setup()
}
override func prepareForInterfaceBuilder() {
self._setup()
}
private func _setup(){
self.layer.cornerRadius = 5.0
self.layer.masksToBounds = true
self.layer.borderColor = UIColor.whiteColor().CGColor
self.layer.borderWidth = 1.0
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
super.drawRect(rect)
}
deinit {
}
}
有两个问题:
答案 0 :(得分:1)
我仍然是一个iOS新手,但我有类似的情况,这对我来说很好:
@IBDesignable class ShButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self._setup()
}
override init(frame: CGRect) {
super.init(frame: frame)
self._setup()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self._setup()
}
private func _setup(){
self.layer.cornerRadius = 5.0
self.layer.masksToBounds = true
self.layer.borderColor = UIColor.whiteColor().CGColor
self.layer.borderWidth = 1.0
self.setNeedsDisplay()
}
}
这允许我在按钮上设置默认cornerRadius
,而不必使用IBInspectable
,并且在故事板和运行时都可以使用。
编辑:更新的答案