我必须为 UIView 绘制自定义边框。
我已经有代码可以做到这一点,但它是在我们开始使用自动布局之前编写的。
代码基本上加了一个width/height=1.0f的子层
-(void)BordeIzquierdo:(UIColor *)pcColor cfloatTamanio:(CGFloat )pcfloatTamanio
{
CALayer* clElemento = [self layer];
CALayer *clDerecho = [CALayer layer];
clDerecho.borderColor = [UIColor darkGrayColor].CGColor;
clDerecho.borderWidth = pcfloatTamanio;
clDerecho.frame = CGRectMake(0, 1, pcfloatTamanio, self.frame.size.height);
[clDerecho setBorderColor:pcColor.CGColor];
[clElemento addSublayer:clDerecho];
}
现在的问题是,使用自动布局,这发生在 layoutSubViews 之前。(0,0;0,0) 也是如此UIView.layer.frame
,因此添加的子层未显示,因为它的宽度/高度=0.0f
现在如何在不将此自定义绘图转移到另一个方法之后执行此代码,viewDidLoad
例如didLayoutSubviews
.
我希望在viewDidLoad
调用之前正确应用此样式。
- 有什么像我可以使用的自动布局约束
CALayers
吗? - 还有其他想法吗?