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

    隐式事务

    任何对于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];
  • 相关阅读:
    灾难 BZOJ 2815
    消耗战 BZOJ 2286
    征途 BZOJ 4518
    纸箱堆叠 BZOJ 2253
    Gate Of Babylon BZOJ 1272
    std::string::npos mean
    [转]整理索引碎片,提升SQL Server速度
    笔记本win7制作wifi
    关闭linux下的使用的端口
    linux多线程
  • 原文地址:https://www.cnblogs.com/H7N9/p/4888836.html
Copyright © 2011-2022 走看看