标签:
具体做法是:
1
|
layer.allowsEdgeAntialiasing = true
|
想起了很久以前也遇到过类似的问题 那时候要做一个类贴纸的应用 理所当然会遇到贴纸缩放和旋转的问题 所以锯齿的问题也是需要解决的 但是那时候是iOS4,5的时代 压根没有上面说的allowsEdgeAntialiasing
这个东西(这个东西iOS7才公开 不过iOS6据说也可以用 但是黑科技嘛..你懂的)
所以当时求助了万能的stackoverflow 得到了一个非常简约而不简单的方法 就是我在微博上说的 只要把需要显示的图片留一个像素的透明边 就搞定了
方法比较简单 我写成了一个UIImage的Category方法 然后一直尘封在我的工具库中好几年(遇到这个问题我才想起来)
1
|
- (UIImage *)antiAlias
|
先来看看实际的效果(看不清楚的同学可以点大图)
可以看到旋转的时候若不做任何处理 确实是会有明显的锯齿 而使用透明边的方法 或者设置allowsEdgeAntialiasing
都可以消除锯齿
接下来看看这两种方法的性能比较 测试方法是在我的iPhone 5S上接连对500个UIImageView进行旋转 对比帧数 其结果如下
结果表明 allowsEdgeAntialiasing
的性能还是比透明边的方式要差一点 所以…
文中的demo可以在这里找到
测试的方法也许不太严谨(也是临时起意写的这篇 所以并没有花太多时间) 如果有错误 请大家提出来
标签:
原文地址:http://www.cnblogs.com/Camier-myNiuer/p/4834385.html