Я добавил подкласс UIView:Как установить раскадровку UIView в подкласс представления?
class WhiteWithGreyTBBorderView: UIView {
override init (frame : CGRect) {
super.init(frame : frame)
addBehavior()
}
convenience init() {
self.init(frame:CGRectZero)
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
func addBehavior(){
backgroundColor = UIColor.blackColor()
addTopBorderWithColor(UIColor.blackColor(), width: 5)
}
}
Тогда у меня есть ViewExtension:
extension UIView {
func addTopBorderWithColor(color: UIColor, width: CGFloat) {
let border = CALayer()
border.backgroundColor = color.CGColor
border.frame = CGRectMake(0, 0, self.frame.size.width, width)
self.layer.addSublayer(border)
}
func addRightBorderWithColor(color: UIColor, width: CGFloat) {
let border = CALayer()
border.backgroundColor = color.CGColor
border.frame = CGRectMake(self.frame.size.width - width, 0, width, self.frame.size.height)
self.layer.addSublayer(border)
}
func addBottomBorderWithColor(color: UIColor, width: CGFloat) {
let border = CALayer()
border.backgroundColor = color.CGColor
border.frame = CGRectMake(0, self.frame.size.height - width, self.frame.size.width, width)
self.layer.addSublayer(border)
}
func addLeftBorderWithColor(color: UIColor, width: CGFloat) {
let border = CALayer()
border.backgroundColor = color.CGColor
border.frame = CGRectMake(0, 0, width, self.frame.size.height)
self.layer.addSublayer(border)
}
}
Я добавил UIView к моей раскадровки и установить класс WhiteWithGreyTBBorderView. Это по-прежнему белый и не черный, в консоли я получаю:
2015-09-03 14: 28: 38,802 NewsApp [6801: 1954504] Не удалось установить (BorderColor) определенные пользователем досматриваемого собственности на (NewsApp.WhiteWithGreyTBBorderView): [setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключевого borderColor. 2015-09-03 14: 28: 38.803 NewsApp [6801: 1954504] Не удалось установить (borderWidth) определяемое пользователем свойство проверки (NewsApp.WhiteWithGreyTBBorderView): [setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключевого borderWidth.
Любая идея, что может быть неправильным?