内存的消耗最少,而且渲染最快的显示圆角

 


OC

/**
 使用CAShapeLayer和UIBezierPath设置圆角
 内存的消耗最少,而且渲染快速
 */

- (void)cutCircleLayer:(UIView *)sender {
    
    // 切半圆
    UIBezierPath *maskPath =
    [UIBezierPath bezierPathWithRoundedRect:sender.bounds cornerRadius:20];
    
    // 切 圆
//    UIBezierPath *maskPath =
//    [UIBezierPath bezierPathWithRoundedRect:sender.bounds
//                          byRoundingCorners:UIRectCornerAllCorners
//                                cornerRadii:sender.bounds.size];
    
    /**
     UIRectCornerTopLeft
     UIRectCornerTopRight
     UIRectCornerBottomLeft
     UIRectCornerBottomRight
     UIRectCornerAllCorners
     */
    
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    
    //设置大小
    maskLayer.frame = sender.bounds;
    
    //设置图形样子
    maskLayer.path = maskPath.CGPath;
    
    sender.layer.mask = maskLayer;
}


    Swift

    /**
     使用CAShapeLayer和UIBezierPath设置圆角
     内存的消耗最少,而且渲染快速
     */
    func cutCircleLayer(sender: UIView) {
        
        // 切半圆
        let maskPath = UIBezierPath(roundedRect: sender.bounds, cornerRadius: 20);
        
        
        // 切 圆
        //let maskPath = UIBezierPath(roundedRect: sender.bounds, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: sender.bounds.size);
        
        /**
         TopLeft
         TopRight
         BottomLeft
         BottomRight
         AllCorners
         */
        
        let maskLayer = CAShapeLayer();
        
        //设置大小
        maskLayer.frame = sender.bounds;
        
        //设置图形样子
        maskLayer.path = maskPath.CGPath;
        
        sender.layer.mask = maskLayer;
        
    }

 


OC版本Demo演示点此下载.

 

Swift版本Demo演示点此下载


学自: FFIB

 

转载于:https://my.oschina.net/codeismygirl/blog/655797

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值