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

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


    
 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

原文

你可能感兴趣的:(代码片段-实现UIView某几个角的圆角效果)