美文网首页ios技术相关
CALayer的隐式动画和显式动画

CALayer的隐式动画和显式动画

作者: 鱼爱游泳 | 来源:发表于2019-07-28 17:31 被阅读0次

隐式事务

任何对于CALayer属性的修改,都是隐式事务,都会有动画效果.这样的事务会在run-loop中被提交.

- (void)viewDidLoad {

    //初始化一个layer,添加到主视图

    layer=[CALayer layer];

    layer.bounds = CGRectMake(0, 0, 200, 200);

    layer.position = CGPointMake(160, 250);

    layer.backgroundColor = [UIColor redColor].CGColor;

    layer.borderColor = [UIColor blackColor].CGColor;

    layer.opacity = 1.0f;

    [self.view.layer addSublayer:layer];   

    [super viewDidLoad];

}

-(IBAction)changeLayerProperty {

    //设置变化动画过程是否显示,默认为YES不显示

    [CATransaction setDisableActions:NO];    //  设置是否启动隐式动画

    layer.cornerRadius = (layer.cornerRadius == 0.0f) ? 30.0f : 0.0f;    //  设置圆角

    layer.opacity = (layer.opacity == 1.0f) ? 0.5f : 1.0f;  // 设置透明度

显式事务

显式事务,通过明确的调用begin,commit来提交动画

[CATransaction begin];

    //显式事务默认开启动画效果,kCFBooleanTrue关闭

    [CATransaction setValue:(id)kCFBooleanFalse forKey:kCATransactionDisableActions];

    //动画执行时间

    [CATransaction setValue:[NSNumber numberWithFloat:5.0f] forKey:kCATransactionAnimationDuration];

    //[CATransaction setAnimationDuration:[NSNumber numberWithFloat:5.0f]];

    layer.cornerRadius = (layer.cornerRadius == 0.0f) ? 30.0f : 0.0f;

    layer.opacity = (layer.opacity == 1.0f) ? 0.5f : 1.0f;

    [CATransaction commit];

相关文章

  • iOS-CALayer (四)

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

  • SwiftUI -- View 动画

    SwiftUI 中的动画有两种类型:显式动画和隐式动画。 一、显式动画 显式动画通过 withAnimation ...

  • CALayer动画专题

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

  • CALayer的隐式动画和显式动画

    隐式事务 任何对于CALayer属性的修改,都是隐式事务,都会有动画效果.这样的事务会在run-loop中被提交....

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

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

  • iOS中显式和隐式动画的区别

    收集到的显式和隐式动画的区别: 1、隐式动画一直存在 如需关闭需设置;显式动画是不存在,如需显式 要开启(创建)。...

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

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

  • iOS动画笔记

    在iOS各类动画效果中,习惯分为两类:隐式动画和显式动画。 隐式动画 简单的讲,由系统进行相关动画配置,执行动画效...

  • iOS隐式动画与显式动画的区别

    请参考iOS隐式动画与显式动画的区别

  • iOS动画-CAAnimation使用详解

    理解了隐式动画后,显式动画就更加通俗易懂了。区别于隐式动画的特点,显式动画就是需要我们明确指定类型、时间等参数来实...

网友评论

    本文标题:CALayer的隐式动画和显式动画

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