swift 4.2 高效绘制圆角

//高效绘制圆角UIImageView
extension UIImageView{
    func setCornerImage(){
        //异步绘制图像
        DispatchQueue.global().async(execute: {
            //1.建立上下文
            UIGraphicsBeginImageContextWithOptions(self.bounds.size, true, 0)
            //获取当前上下文
            let ctx = UIGraphicsGetCurrentContext()
            //设置填充颜色
            UIColor.white.setFill()
            UIRectFill(self.bounds)
            //2.添加圆及裁切
            ctx?.addEllipse(in: self.bounds)
            //裁切
            ctx?.clip()
            //3.绘制图像
            self.draw(self.bounds)
            //4.获取绘制的图像
            let image = UIGraphicsGetImageFromCurrentImageContext()
            //5关闭上下文
            UIGraphicsEndImageContext()
            DispatchQueue.main.async(execute: {
                self.image = image
            })
        })
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,723评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,543评论 5 13
  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 10,615评论 3 23
  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 4,262评论 0 3
  • --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益...
    韩七夏阅读 7,833评论 2 10

友情链接更多精彩内容