Я следил за tutorial здесь, чтобы создать контролируемый и понятный вид. Я просто хочу добавить границу границы, ширину границы и закругленную границу в UIView
.Почему свойства, помеченные как @IBInspectable, не работают?
Мне удалось показать свойства. Но не имеет значения, что я установил на раскадровке, результат все равно, если их там нет. Нет границы, хотя я установил границу шириной 2 и черным цветом. Он не отображается как на раскадровке, так и во время выполнения. Я установил границу шириной 2, но во время выполнения я печатаю значение ширины границы в didViewLoad, а результат равен 0. Что может быть, возможно, неправильно?
@IBDesignable extension view: UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth;
}
set {
layer.borderWidth = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
И это тоже не работает:
@IBDesignable class BOView: UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth;
}
set {
layer.borderWidth = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
ты перевернул меню '' Editor' ➜ Автоматически Refresh Views' на в IB? – holex
@holex этот параметр уже включен. –
см. Этот учебник: https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –