CALayerDelegate

CALayerDelegate

包含以下几个方法其中 displayLayer 方法 和 drawLayer 方法如果全部实现的话只会走displayLayer,他们的执行顺序是

layerWillDraw->displayLayer/drawLayer->layoutSublayersOfLayer;

如果当前View 有多个Layer 的话 在这4个方法中 写的代码 会在每个layer中绘制。

- (void)displayLayer:(CALayer *)layer;

和上一个方法类似

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;

//开始绘制时候 执行

- (void)layerWillDraw:(CALayer *)layer

//最后执行

- (void)layoutSublayersOfLayer:(CALayer *)layer;

//再添加 或删除 layer 层的时候回调用这个方法 ,可以按照分类写动画

- (nullable id)actionForLayer:(CALayer *)layer forKey:(NSString *)event;

eg:

-(id)actionForLayer:(CALayer *)layer forKey:(NSString *)event

{

NSLog(@"actionForLayer %@",event);

CATransition *anim=nil;

if([event isEqualToString:@"onOrderIn"]){

anim=[CATransition animation];

anim.duration=2;

anim.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

anim.type=@"cube";

anim.subtype=kCATransitionFromRight;

}

return anim;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,573评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,147评论 5 13
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 3,169评论 1 23
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 3,071评论 0 21
  • 如果想让事情变得顺利,只有靠自己--夏尔·纪尧姆 上一章介绍了隐式动画的概念。隐式动画是在iOS平台创建动态用户界...
    夜空下最亮的亮点阅读 1,996评论 0 1