iOS开发 高性能添加圆角(支持4个不同半径)

本文探讨了iOS开发中添加圆角时的性能问题和离屏渲染,提出了利用Core Graphics避免离屏渲染的策略。文章指出,虽然CAShapeLayer可以降低内存消耗,但仅支持iOS 10以上版本。对于iOS 10之前的版本,通过Core Graphics创建位图上下文仍然是必要选择。此外,作者提供了支持不同半径圆角的类别扩展以及相关图形处理功能,并分享了一个名为QQCorner的Cocoapods库。
摘要由CSDN通过智能技术生成

在开发中,添加圆角似乎再常见不过了。不过它带来的性能问题以及离屏渲染问题,也受到部分开发者的注意。

如何才能在不影响性能的前提下添加圆角呢?

相信大家也看过很多博客,写得也很不错,都是这种解决办法。我随便列举几个

  • 通过设置 CALayermask属性来切,这个无法避免离屏渲染,不推荐。
  • 通过 UIGraphicsBeginImageContextWithOptions()创建一个 Image 的图形上下文,在上面绘制 path 并裁剪,最终生成新的 UIImage,这个可行,但是图片尺寸是有限制的,如果 size 过大,会导致内存暴涨,扛不住,直接GG
  • iOS 9 之后,UIImageView设置png格式的图片时,并且没有 backgroundColor时,设置其 layercornerRadius不会触发离屏渲染。

好消息!好消息!WWCD 2018 告诉我们,有 UIGraphicsImageRenderer这么一个类,它比 UIGraphicsBeginImageContextWithOptions()这个方法要降低75%的内存消耗!

坏消息是什么?它只支持 iOS 10 以上的版本。

那么 iOS 10 之前࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值