1、view不具备显示功能,因为view内部有一个图层,view才能显示出来
2、图层(layer)不具备事件功能,view继承UIresponse具有事件处理功能
3、自定义图层有一个隐式动画,UIview内部图层没有隐式动画(隐式动画:改变图层上的某个属性发生的动画)
CALayer是屏幕上的一个矩形区域,每个view都有一个跟layer,所有有关view的视觉效果都是在这个layer上进行的,CALayer外形主要包含:
1、层的大小尺寸
2、背景色
3、内容(可以填充的图片或者使用core graphics绘制的内容)
4、矩形是否有圆角
5、矩形是否有阴影
Layer有很多种,最常用的也是最基本的是CALayer,包含之类:
CATestLayer 文本层
CAcrollerLayer 简化显示层的一部分等等
设置圆角
1、layer.borderWidth = 20;
2、在图层是添加一个image,用contents便是接受内容】
layer.contents = (id)[UIImage imageName:@“me”].CGImage;
注意:layer不能直接接受ui框架中的东西,layer的contents的接收类型为id类型
3、实际效果图片并未设置成圆角,那是因为UIimage不是展示在朱图层layer上的,而是现实在UIimage自带的子图层上的,可以通过设把超出主视图的部分裁剪掉来解决的这个办法,
self.costomeVire.layer.maskToBound = YES;
打个设置了这个属性后,为layer设置的阴影效果就没有了
隐式动画
每个view都自带一个layer,view自带的layer无法实现隐式动画,只有自定义的layer才能实现隐式动画,
隐式动画是在改变layer的默写属性是自带的一种动画效果,例如当改变layer的bounds或backgroundColor的时候会出现的动画效果就是layer的隐式动画
layer的隐式动画效果是默认为yes的,当想取消隐式动画效果时要手动设置[CATransactionsetDisableActions:YES];
显示动画
显示动画不改变图层的属性,所有的核心动画都由抽象类CAAnimation继承而来,CAAnimation采用CAMediaTiming协议和CAAction此而已,CAMediaTiming规定了动画的持续时间,速度及重复次数。CAAction规定了在响应由层触发的动作时,开始一个动画的标准方式。