设置View的半边圆角效果

设置View的一边圆角

  • 效果如图
设置View的半边圆角效果_第1张图片
半圆角
  • 实现方式 : UIBezierPath CAShapeLayer

  • 核心方法:

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii
  • 基本思路:

    1. 通过贝塞尔曲线画一条半边圆角的路径

    2. 将该路径作为CAShapeLayer的path

    3. 将该CAShapeLayer作为视图的mask

通过贝塞尔曲线画一条半边圆角的路径

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii

该方法会接受三个参数

  • rect : 传控件的bounds

  • corners : 圆角的位置 ,该值为枚举类型。指定圆角的位置,可以分别设置左上 、左下、右上、右下。并且可以同时指定,如左上和左下,即示例图中半边圆角效果 。 UIRectCornerBottomRight : 右下角 ...

  • cornerRadii : 圆角大小


eg:

    // 获取一条曲线。曲线路径为(0,0,96,50).圆角位置为右上和右下,圆角大小为25
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 96, 50) byRoundingCorners:UIRectCornerTopRight | UIRectCornerBottomRight cornerRadii:CGSizeMake(25, 25)];

    // 初始化一个CAShapeLayer
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    maskLayer.frame = CGRectMake(0, 0, 96, 50);
    // 将曲线路径设置为layer的路径
    maskLayer.path = path.CGPath;

    // 设置控件的mask为CAShapeLayer
    self.checkButton.layer.mask = maskLayer;

你可能感兴趣的:(设置View的半边圆角效果)