- 通过CALayer,能做出跟UIImageView一样的界面效果
- 既然CALayer和UIView都能实现相同的显示效果,那究竟选择谁好呢?
- 其实,对比CALayer,UIView多了一个事件处理的功能.也就是说,Calayer 不能处理用户的触摸事件,而UIView可以
- 所以,如果显示出来的东西需要跟用户进行交互的话,用UIView;如果不需要跟用户进行交互,用UIView和CALayer都可以
- 当然,CALayer的性能会更高一些,因为它少了事件处理的功能,更加轻量级
//新建图层 CALayer * layer = [CALayer layer]; layer.backgroundColor = [UIColor redColor].CGColor; layer.frame = CGRectMake(0, 0, 100, 100); layer.position = CGPointMake(200, 200); layer.contents = (id)[UIImage imageNamed:@"yourImageName"].CGImage; [self.view.layer addSublayer:layer];
关于CALayer的疑惑
首先CALayer是定义在QuartzCore框架中CGImageRef CGColorRef 两种数据类型是定义在CoreGraphics框架中的UIColor UIImage 是定义在UIKit框架中的其次QuartzCore框架和CoreGraphics框架是可以跨平台使用的,在iOS和 mac os x 上都能使用
但是 UIKit只能在iOS中使用
为了保证可移植性,QuartzCore不能使用UIImage UIColor 只能使用CGImageRef CGColorRef