代码片段-实现UIView某几个角的圆角效果

<p>iOS开发可以很方便的借助UIView图层属性layer的三个属性cornerRadius、borderWidth、borderColor实现UIView的描边、圆角效果,但这远远满足不了美工对艺术无止境的追求,只一个角圆角、两个角圆角...不过实现这种效果并不难,没必要跟美工死磕,人家也不容易。= =#</p>


    
 UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
    view.backgroundColor = [UIColor redColor];
    [self.view addSubview:view];
    
    
    // 创建路径,路径决定圆角效果
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:view.bounds
                                                   byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
                                                         cornerRadii:CGSizeMake(10, 10)];
    // 创建图层,把路径转化为图层效果
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.path = maskPath.CGPath;
    maskLayer.frame = view.bounds;
    
    // 把拥有圆角效果的图层添加到视图上实现圆角效果
    view.layer.mask = maskLayer;

代码中通过UIBezierPath创建路径时可以通过参数byRoundingCorners指定需要圆角的角,可以传一个,也可以按|分隔传多个,角的类型为UIRectCorner,可选的值如下:

  • UIRectCornerTopLeft
  • UIRectCornerTopRight
  • UIRectCornerBottomLeft
  • UIRectCornerBottomRight
  • UIRectCornerAllCorners

原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容