0
次のコードを使用して、UIViewをサブクラス化し、いくつかの罫線を追加します。問題は、自動レイアウト制約を考慮していないことです。 autolayoutが考慮されるようにしたいと思いますし、UIViewに境界が描画されるようにします。どんな助けでも大変感謝しています。initWithCoderはアカウントに自動レイアウトしない
- (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