iOS开发篇小知识 - 如何好性能给UIImage绘制成圆角图片

一.  如果是这种方式的话 会强制core Anmation提前渲染屏幕的离屏绘制,离屏绘制会带来性能上的耗损,从而会导致卡顿现象

iOS开发篇小知识 - 如何好性能给UIImage绘制成圆角图片_第1张图片

正确的方式:

二. 使用了贝塞尔曲线"切割"个这个图片, 给UIImageView 添加了的圆角,其实也是通过绘图技术来实现的


iOS开发篇小知识 - 如何好性能给UIImage绘制成圆角图片_第2张图片

三. 通过绘图技术来实现的


iOS开发篇小知识 - 如何好性能给UIImage绘制成圆角图片_第3张图片

使用drawRect有什么影响?

drawRect方法依赖Core Graphics框架来进行自定义的绘制

缺点:它处理touch事件时每次按钮被点击后,都会用setNeddsDisplay进行强制重绘;而且不止一次,每次单点事件触发两次执行。这样的话从性能的角度来说,对CPU和内存来说都是欠佳的。特别是如果在我们的界面上有多个这样的UIButton实例,那就会很糟糕了

这个方法的调用机制也是非常特别. 当你调用 setNeedsDisplay 方法时, UIKit 将会把当前图层标记为dirty,但还是会显示原来的内容,直到下一次的视图渲染周期,才会将标记为 dirty 的图层重新建立Core Graphics上下文,然后将内存中的数据恢复出来, 再使用 CGContextRef 进行绘制

你可能感兴趣的:(iOS开发篇小知识 - 如何好性能给UIImage绘制成圆角图片)