游戏技术文章

tableView 滚动 cell 中设置圆角头像性能优化的问题

时间:2017-4-22 20:47:34  作者:棋牌资源网  来源:棋牌资源网  查看:7866  评论:0
内容摘要:谈到设置圆角头像的问题,我想大多数人第一反应想到的是设置图像的 layer         let imageV: UIImageView = UIImageView()       &nb...
谈到设置圆角头像的问题,我想大多数人第一反应想到的是设置图像的 layer

         let imageV: UIImageView = UIImageView()

         imageV.layer.cornerRadius = 26

         imageV.layer.masksToBounds = true

 这是一种方式,但在开发中,这样设置圆角头像需要做切割,这时候就需要 CPU 进行计算,还有像设置阴影,设置透明,修改 alpha 值,这些都是不允许的,或者说这是很消耗性能的,特别是在 tableView 中,当我们去滚动 tableView 的时候,CPU 就需要做大量的计算,这是相当消耗性能的,所以想到下面的方式来做:

  一般底层的东西效率都是最高的,所以我们想到使用绘制的办法,来设置圆角头像

  func createCircleImage(color: UIColor = UIColor.white, size: CGSize = CGSize(width: 1, height: 1), callBack:@escaping (UIImage?)->()) {

            DispatchQueue.global().async {

            let rect = CGRect(origin: CGPoint.zero, size: size)

            //1. 开始图形上下文

            UIGraphicsBeginImageContext(size)

            //2. 设置颜色

            color.setFill()

            //3. 颜色填充

            UIRectFill(rect)

            //圆形裁切

            let path = UIBezierPath(ovalIn: rect)

            path.addClip()

            self.draw(in: rect)

            //4. 从图形上下文获取图片

            let image = UIGraphicsGetImageFromCurrentImageContext()

            //5. 关闭图形上下文

            UIGraphicsEndImageContext()

            //在主线程更新UI

            DispatchQueue.main.async {

                callBack(image)

            }

        }

    }

  //设置圆角图像

  image?.createCircleImage(size: CGSize(width: 35, height: 35), callBack: { (circleImage) in

                    self.userIcon.image = circleImage

                })

  这时在 滚动tableView 时,对于程序的性能就会优化很多

标签:tableView滚动cell中设置圆角头像性能优化的问题 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2024 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved