Xcode 6 обновление
Начиная с последней версии XCode, есть лучшее решение для этого:
С помощью @IBInspectable
вы можете устанавливать атрибуты напрямую из в пределах Attributes Inspector
.
Это устанавливает User Defined Runtime Attributes
для вас:
Существует два подхода к настройке:
Вариант 1 (с живым обновлением в раскадровке)
- Создать
MyCustomView
.
- Это наследуется от
UIView
.
- Установить
@IBDesignable
(активирует обновление View). *
- Установите атрибуты времени выполнения (границы и т. Д.) С помощью
@IBInspectable
- Измените класс просмотров на
MyCustomView
- Отредактируйте на панели атрибутов и посмотрите изменения в раскадровке:)
`
@IBDesignable
class MyCustomView: UIView {
@IBInspectable var cornerRadius: CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadius
layer.masksToBounds = cornerRadius > 0
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var borderColor: UIColor? {
didSet {
layer.borderColor = borderColor?.CGColor
}
}
}
* @IBDesignable
работает только при установке в начале class MyCustomView
Опция 2 (не работает с Swift 1.2, см. Комментарии)
Расширьте свой класс UIView:
extension UIView {
@IBInspectable var cornerRadius: CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadius
layer.masksToBounds = cornerRadius > 0
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var borderColor: UIColor? {
didSet {
layer.borderColor = borderColor?.CGColor
}
}
}
Таким образом, ваше представление по умолчанию всегда содержит эти дополнительные редактируемые поля в Attributes Inspector
. Еще одним преимуществом является то, что вам не нужно каждый раз менять класс на MycustomView
.
Однако одним из недостатков этого является то, что вы увидите изменения только при запуске приложения.