【发布时间】:2015-03-24 16:06:57
【问题描述】:
我有下面的代码来创建一个自定义的 IBDesignable UIButton。请注意,我没有任何 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 {
}
}
有两个问题:
- ShButton 类未显示在 IB 的自定义类下拉列表中,我必须手动键入它并提供模块名称。我还注意到这里也没有显示“Designables Up to Date”指示器,这在许多关于该主题的教程中都有显示。
- 它不在 IB 中呈现。但是,当我在模拟器中运行项目时,它会正确呈现。我是否缺少任何使其在 IB 中呈现的内容?
【问题讨论】:
-
你有想过这个吗?
-
不,抱歉,我不能
-
您运行的是哪个版本的 Xcode?您提供的代码在 Xcode 7.2 上运行良好,通过将
required init(coder aDecoder: NSCoder)更改为required init?(coder aDecoder: NSCoder)
标签: ios xcode swift ibdesignable ibinspectable