设置View的半边圆角效果

设置View的一边圆角

  • 效果如图
半圆角
  • 实现方式 : 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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容