UIView 和 CALayer的选择

来源:互联网 发布:微信三级分销系统 源码 编辑:程序博客网 时间:2024/06/10 18:18
  1. 通过CALayer,能做出跟UIImageView一样的界面效果
  2. 既然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 
0 0