Core Animation 官方文档第二章(设置图层对象)

总结:

默认情况下,UIView会帮你创建一个CALayer对象的图层,通常情况下你也不需要改变它。但是在一些高级动画中,或者使用其他类型图层看起来更合适的时候,如果你想替换掉原来的layers,可以通过下面的这个方法:

+ (Class) layerClass {
   return [CAMetalLayer class];
}
这样,你的UIView甚至实现了定制,你可以用这种方法自己写一个UIImageView。

在Mac下如果想改变默认的layer需要通过下面这个方法:makeBackingLayer。这是和iOS不同的地方。
iOS下的layer class如下:每一个都需要深入研究,当然我并没有研究,只是大体了解,做个梳理,如有不对恳请指出。

CAEmitterLayer:粒子系统,比如雪花、烟花等等特效都可以通过它来实现。

CAGradientLayer:处理颜色渐变的。

CAMetalLayer:这个貌似很强大,做一些纹理特效等。

CAEAGLLayer:绘图专用。

CAReplicatorLayer:高效生成许多相似的图层。

CAScrollLayer:可以显示部分内容,允许用户滑动,类似UIScrollView。

CAShapeLayer:通过矢量图形而不是bitmap来绘制的图层子类。

CATextLayer:类比UILabel。

CATiledLayer:将大图分解成小图,按需加载。

CATransformLayer:3D图层渲染。

给图层提供contents有三种方法:

1.直接添加对象:

2.通过代理添加,类似UIView:
有两个代理方法都可以:displayLayer:,drawLayer:inContext:

如果同时实现,只会执行displayLayer:方法。

3.子类化:

需要重写的方法:

display可以添加contents

 drawInContext:主要用来绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值