autolayout不适用于layer
这里是这么解决的:重写view的layerClass,view使用auto layout,调用view的layoutSubviews重新绘制layer的边界
这里以shape layer为例子
在view.m中如下实现
+(Class)layerClass{
return [CAShapeLayer class];
}
- (instancetype)init
{
self = [super init];
if (self) {
((CAShapeLayer *)self.layer).fillColor = [UIColor colorWithRed:0 green:183.0 / 255.0 blue:56.0 / 255.0 alpha:1.0].CGColor;
((CAShapeLayer *)self.layer).strokeColor = [UIColor colorWithRed:0 green:183.0 / 255.0 blue:56.0 / 255.0 alpha:1.0].CGColor;
((CAShapeLay