美文网首页
iOS CALayer/隐式动画

iOS CALayer/隐式动画

作者: Zonpai | 来源:发表于2018-08-09 17:19 被阅读0次

CALayer的学习

1.CALayer不是UIResponder的子类,不能响应事件
2.非RootLayer的layer存在隐式动画,
3.rootlayer的layer不存在隐式动画,即使commit提交了也没有动画效果。
补充
根layer(rootLayer)类似于UIView中的一个layer层,非RootLayer层就是自己创建的layer层。

隐式动画test

- (void)viewDidLoad {
    [super viewDidLoad];
    CALayer *layer = [CALayer layer];
    layer.frame = CGRectMake(0,0, 100, 100);
    layer.backgroundColor = [UIColor redColor].CGColor;
    layer.borderColor = [UIColor yellowColor].CGColor;
    layer.shadowOpacity = 0.5;
    layer.shadowColor= [UIColor blueColor].CGColor;
    layer.borderWidth = 3;
    layer.position = self.view.center;
    layer.anchorPoint = CGPointMake(0.5, 1);
    self.layer = layer;
    [self.view.layer addSublayer:self.layer];
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    //设置非root Layer层的动画效果,默认为no;
    [CATransaction setDisableActions:YES];
    [CATransaction setAnimationDuration:1];
    self.layer.backgroundColor = [UIColor orangeColor].CGColor;
    self.layer.frame = CGRectMake(0, 0, 200, 200);
    self.layer.anchorPoint = CGPointMake(0.5, 0);
    self.layer.cornerRadius = 50;
    self.layer.shadowColor = [UIColor yellowColor].CGColor;
    //提交非root Layer的动画效果
    [CATransaction commit];
    self.layer.position = CGPointMake(100, 0);
}
效果图:

补充
可以设置隐式动画关闭。当在设置隐式动画的动画效果时候,需要在提交的commit方法前面实现,否则,没有动画效果。如上面例子中的,在设置layer的position属性时候,没有提交上去,因此,效果图中的layer有一个瞬移的效果。


相关文章

  • iOS-CALayer (四)

    上一篇 : iOS-CALayer (三) 前言:继续深入学习动画,主要从隐式动画、显式动画上车。 一、隐式动画 ...

  • CALayer动画专题

    CALayer动画专题 来自《ios核心动画高级技巧》书中的一些例子总结,包含了 隐式动画 显式动画 缓冲-动画速...

  • 动画 (1) ----- CALayer

    CALayer 和 UIView 联系CALayer的相关属性CALayer之隐式动画 一. CALayer 和 ...

  • iOS CALayer/隐式动画

    CALayer的学习 1.CALayer不是UIResponder的子类,不能响应事件2.非RootLayer的l...

  • 隐式动画&显式动画 学习笔记

    隐式动画 CALayer的属性基本上都可以进行隐式动画 CATransaction可以控制隐式动画(执行时间或者关...

  • 02.5-CALayer和CATransform3D

    一、CALayer 二、CATransform3D 三、UIView和CALayer的选择 四、CALayer的隐式动画

  • iOS 动起来

    CALayer UIView和CALayer之间的关系 CALayer 隐式属性动画的本质是这些属性的变动默认隐含...

  • iOS动画原理--隐式动画

    问题: 1.什么是隐式动画,为什么CALayer设置可动画属性时会触发隐式动画?2.UIView设置属性,为什么没...

  • [iOS] CoreAnimation 学习笔记

    CALayer 隐式动画 隐式动画:属性或内容变化时框架自带的动画效果,即不需要使用类似 UIView Anima...

  • iOS的Tips

    修改CALayer隐式动画的时长 [CATransaction begin];[CATransaction set...

网友评论

      本文标题:iOS CALayer/隐式动画

      本文链接:https://www.haomeiwen.com/subject/hccxbftx.html