文档章节

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

宁音雨雾
 宁音雨雾
发布于 2016/04/09 15:44
字数 196
阅读 90
收藏 0

 


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

 

© 著作权归作者所有

宁音雨雾
粉丝 55
博文 312
码字总数 48631
作品 0
东城
程序员
私信 提问
iOS 离屏渲染

先放结论 如果能够只用 cornerRadius 解决问题,就不用优化。 如果必须设置 masksToBounds,可以参考圆角视图的数量,如果数量较少(一页只有几个)也可以考虑不用优化。 UIImageView 的圆角...

天使雨儿
2016/10/19
50
0
iOS保持界面流畅技巧文章阅读摘录

下列内容为阅读文章的摘录,原文链接:http://blog.ibireme.com/2015/11/12/smoothuserinterfacesforios/ CPU资源消耗 1、对象创建 通过 Storyboard 创建视图对象时,其资源消耗会比直接通过...

小春0618
2016/05/07
68
0
[iOS Animation]-CALayer 图层性能

图层性能 要更快性能,也要做对正确的事情。 ——Stephen R. Covey 在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题。在最后一章,我们将着...

浩浩老师
2015/09/14
28
0
[iOS Animation]-CALayer 图层性能一

图层性能 要更快性能,也要做对正确的事情。 ——Stephen R. Covey 在第14章『图像IO』讨论如何高效地载入和显示图像,通过视图来避免可能引起动画帧率下降的性能问题。在最后一章,我们将着...

浩浩老师
2015/09/16
115
0
[iOS Animation]-CALayer 图层性能二

CAShapeLayer 和独立作用的时候都不会有太大的性能问题,但是当他俩结合在一起,就触发了屏幕外渲染。有时候你想显示圆角并沿着图层裁切子图层的时候,你可能会发现你并不需要沿着圆角裁切,...

浩浩老师
2015/09/16
30
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
13
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部