iOS 指定位置切圆角不生效问题

时间:2019-11-06
本文章向大家介绍iOS 指定位置切圆角不生效问题,主要包括iOS 指定位置切圆角不生效问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

如果是在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;
//    
//        
//    });

原文地址:https://www.cnblogs.com/liuw-flexi/p/11806235.html