У меня есть код ниже для создания пользовательского UIButton IBDesignable. Обратите внимание, что у меня нет 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?
required init(coder aDecoder: NSCoder)
ошибочным, изменив его наrequired init?(coder aDecoder: NSCoder)
- person Georgi   schedule 09.03.2016