首页 > 其他 > 详细

关于calayer

时间:2014-02-15 16:39:25      阅读:443      评论:0      收藏:0      [点我收藏+]

    前两天在cocoa china 的微信平台推送消息中无意看到了一个关于优化 uitableviw 的滚动效果。其中在确定cell的样子的时候,提到用calayer 来绘制图片的问题。蓦然发现自己在方面的知识,已经有点模糊了,于是放狗恶补一下。稍微给自己做点记号吧。

    1.uiview和calayer 的最大区别就在于layer 的单纯的绘制,他不会接受用户的交互,比如手势啊 什么的。而uiview不同,他本身就是机遇calayer 而来的,可以理解为uivew的在calayer的基础上为 calayer 接受用户交互进行封装之后的类。所以这就存在一个效率的问题。如果你要绘制的数据很多,而又不用交互,那么使用calayer 肯定能提高绘制效率,因为他本来就是为绘制而生的,uiview会因为在内部进行封装的时候消耗时间,而影响效率。而且在我看的那篇文章中说,uiview 在绘制的时候只是用了cpu 进行运算,但calayer在运算时候是 CPU 和GPU 双管齐下,自然更快。

    2.如果是自定义一个calayer ,那记得他的绘制方法是在  drawInContext:(CGContextRef)ctx 中。而且,cg

开头的东东,如果是用create 创建了,记得 最后用 release把生成的对象干掉。

    3.如果你在calayer 中图层中绘制了图像,那就别在 view的 drawrect 方法中继续绘制别的图像了,因为绘制完了之后,又会被calayer方法中的绘制的图像覆盖。

关于calayer

原文:http://www.cnblogs.com/javacodeman/p/3550576.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!