zoukankan      html  css  js  c++  java
  • CALayer的隐式动画和显式动画

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

     1 - (void)viewDidLoad {
     2     //初始化一个layer,添加到主视图
     3     layer=[CALayer layer];
     4     layer.bounds = CGRectMake(0, 0, 200, 200);
     5     layer.position = CGPointMake(160, 250);
     6     layer.backgroundColor = [UIColor redColor].CGColor;
     7     layer.borderColor = [UIColor blackColor].CGColor;
     8     layer.opacity = 1.0f;
     9     [self.view.layer addSublayer:layer];    
    10 
    11     [super viewDidLoad];
    12 }
    13 
    14 -(IBAction)changeLayerProperty {
    15     //设置变化动画过程是否显示,默认为YES不显示
    16 
    17     [CATransaction setDisableActions:NO];    //  设置是否启动隐式动画
    18     layer.cornerRadius = (layer.cornerRadius == 0.0f) ? 30.0f : 0.0f;    //   设置圆角
    19     layer.opacity = (layer.opacity == 1.0f) ? 0.5f : 1.0f;   // 设置透明度
    20 }  

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

     1     [CATransaction begin];
     2     
     3     //显式事务默认开启动画效果,kCFBooleanTrue关闭
     4     [CATransaction setValue:(id)kCFBooleanFalse forKey:kCATransactionDisableActions];
     5     
     6     //动画执行时间
     7     [CATransaction setValue:[NSNumber numberWithFloat:5.0f] forKey:kCATransactionAnimationDuration];
     8     
     9     //[CATransaction setAnimationDuration:[NSNumber numberWithFloat:5.0f]];
    10     
    11     layer.cornerRadius = (layer.cornerRadius == 0.0f) ? 30.0f : 0.0f;
    12     layer.opacity = (layer.opacity == 1.0f) ? 0.5f : 1.0f;
    13     
    14     [CATransaction commit];
  • 相关阅读:
    dubbo服务配置
    架构基本概念和架构本质
    最大子数组和问题
    struts2简单登陆页面
    四则运算随机出题
    省赛训练赛赛题(简单题)
    Ubuntu虚拟机安装,vritualbox虚拟机软件的使用
    Rational Rose 2007破解版
    netbeans出现的错误
    快速幂
  • 原文地址:https://www.cnblogs.com/sell/p/2908804.html
Copyright © 2011-2022 走看看