Im, используя следующий код для подкласса UIView и добавления к нему некоторых границ. Проблема заключается в том, что он не учитывает ограничения автоопределения. Я бы хотел, чтобы автозапуск был учтен, а затем UIView имеет нарисованную на нем границу. Любая помощь будет большой благодарностью.initWithCoder, не входящий в аккаунт Autolayout
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self setupView];
}
return self;
}
- (void)setupView {
[self prefix_addUpperBorder:UIRectEdgeTop color:[UIColor flatWhiteColorDark] thickness:0.5];
}
- (CALayer *)prefix_addUpperBorder:(UIRectEdge)edge color:(UIColor *)color thickness:(CGFloat)thickness
{
CALayer *border = [CALayer layer];
switch (edge) {
case UIRectEdgeTop:
border.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), thickness);
break;
case UIRectEdgeBottom:
border.frame = CGRectMake(0, CGRectGetHeight(self.frame) - thickness, CGRectGetWidth(self.frame), thickness);
break;
case UIRectEdgeLeft:
border.frame = CGRectMake(0, 0, thickness, CGRectGetHeight(self.frame));
break;
case UIRectEdgeRight:
border.frame = CGRectMake(CGRectGetWidth(self.frame) - thickness, 0, thickness, CGRectGetHeight(self.frame));
break;
default:
break;
}
border.backgroundColor = color.CGColor;
[self.layer addSublayer:border];
return border;
}
Отличное спасибо, обычно не подкласс. – ORStudios