• 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];
  • 相关阅读:
    SVD singular value decomposition
    Eigen参考资料
    设置C++ cout输出精度
    eigenMatrix
    电池容量单位 Wh和 Ah的关系
    windows10 如何关闭快速关机功能电源选项
    TIA Portal 和 scout 之间的驱动器地址分配
    SIMATIC 1500 PLC 同步轴,状态字StatusWord信号描述
    Simotion 凸轮同步,偏移凸轮起点
    ROS Create a Catkin Workspace
  • 原文地址:https://www.cnblogs.com/H7N9/p/4888836.html
Copyright © 2020-2023  润新知