如果是在VC中操作,需要在viewDidLayoutSubviews方法里
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
CGFloat radius= 36; //圆角大小
UIRectCorner corner = UIRectCornerBottomLeft |UIRectCornerBottomRight;
UIBezierPath* path =[UIBezierPath bezierPathWithRoundedRect:self.backImageV.bounds byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)];
CAShapeLayer*maskLayer =[[CAShapeLayer alloc] init];
maskLayer.frame=self.backImageV.bounds;
maskLayer.path=path.CGPath;
self.backImageV.layer.mask=maskLayer;
}
或者在其他地方,给一个延时:
//dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{//
//CGFloat radius = 36;//圆角大小//UIRectCorner corner = UIRectCornerBottomLeft | UIRectCornerBottomRight;//UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:self.backImageV.bounds byRoundingCorners:corner cornerRadii:CGSizeMake(radius, radius)];//CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];//maskLayer.frame = self.backImageV.bounds;//maskLayer.path = path.CGPath;//self.backImageV.layer.mask = maskLayer;//
//
//});
如果是对同一UILayer 操作,既切圆角又设置阴影。多加一层UIView, 一层设置圆角,一层设置阴影。
//===========\
// TODO:圆角与阴影不能共存问题?
// 在subview上面设置圆角,把subview的masksToBounds属性设置为true
// 在parent view上面设置阴影,把parent view的masksToBounds属性设置为false,并设置parent view的cornerRadius和subview一样,就可以了。
// ————————————————
// 版权声明:本文为CSDN博主「feosun」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
// 原文链接:https://blog.csdn.net/feosun/article/details/86657330