UIView与CALayer的选择
CALayer和UIView的用法一样,一模一样,只是在添加图片的时候需要转一下(CGImage)
当不认识的时候,在前面加上一个(),在括号里面写上它是什么类型
layer.contents = (id)[UIImage iamgeWithNamed:@""].CGImage;
如何选择
关于CALayer的疑惑
- 首先
CALayer是定义在QuartzCore框架中的
CGImageRef、CGColorRef两种数据类型是定义在CoreGraphics框架中的
UIColor、UIImage是定义在UIKit框架中的
- 其次
QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和Mac OS X上都能使用
但是UIKite只能在iOS中使用
- 为了保证可移植性,QuartzCore不能使用UIImage、UIColor,只能使用CGImageRef、CGColorRef
UIView和CALayer的选择
-
通过CALayer,就能做出跟UIImageView一样的界面效果
-
其实对比CALayer,UIView多了一个事件处理的功能。也就是说,CALayer不能处理用户的触摸事件,而UIView可以
-
所以,如果显示出来的东西需要跟用户进行交互的话,用UIView,如果不需要跟用户进行交互,用UIView或者CALayer都可以
-
当然,CALayer的性能会高一些,因为它少了事件处理的功能,更加轻量级