美文网首页iOS Developer - CALayerCore Animation@IT·互联网
从零到一学习CALayer(三.CALayer的隐式动画)

从零到一学习CALayer(三.CALayer的隐式动画)

作者: mkb2 | 来源:发表于2016-08-21 17:39 被阅读205次
Jietu20170715-102132-HD.gif Jietu20170715-101813-HD.gif Jietu20170715-101343-HD.gif

1.每个UIView上都有一个自带的layer,我们称他们为root layer(根层)

2.所有的非根层都存在隐式动画,也就是我们手动 创建的layer都存在隐式动画


什么是隐式动画?

1.对非根层layer的属性进行修改,默认自动的出现一些效果动画
2.这些效果称为 AnimatableProperties(可动画属性)


列举几个可动画属性

1.bounds ,用于设置CALayer的宽高,会有缩放效果
2.backgroundColor,用于设置CALayer的背景颜色,会有渐变的效果
3.position,用于设置CALayer的位置,会有平移的效果


下面来个小的Demo看看实际的效果

改变了背景颜色,它默认就有动画效果
    //1.懒加载设置一些属性
    private lazy var diyLayer:CALayer = {
       let ly = CALayer()
        ly.backgroundColor = UIColor.redColor().CGColor
        ly.bounds = CGRectMake(0, 0, 100, 100)
        ly.position = CGPoint.init(x: 200, y: 100)
        return ly
    }()
    
    
    //2.添加到根层
    override func viewDidLoad() {
        super.viewDidLoad()
        view.layer.addSublayer(diyLayer)
        
    }

     //3.点击屏幕,改变背景
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        diyLayer.backgroundColor = UIColor.greenColor().CGColor
    }

移动位置

锚点默认值是(0.5,0.5),所以刚开始是方形的1/4,后来是1/2
    //1.懒加载设置一些属性
    private lazy var diyLayer:CALayer = {
       let ly = CALayer()
        ly.backgroundColor = UIColor.redColor().CGColor
        ly.bounds = CGRectMake(0, 0, 100, 100)
        ly.position = CGPoint.init(x: 0, y: 0)
        return ly
    }()
    
     //3.点击屏幕,改变背景
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
//        diyLayer.backgroundColor = UIColor.greenColor().CGColor
        diyLayer.position = CGPoint.init(x: 0, y: 400)
    }

隐式属性怎么查?
1.点击属性进去看看,

隠式动画属性

2.去文档中搜索CALayer,然后就能看到有一个文档专门告诉你有哪些隠式动画属性

本文的demo地址

相关文章

  • 从零到一学习CALayer(三.CALayer的隐式动画)

    1.每个UIView上都有一个自带的layer,我们称他们为root layer(根层) 2.所有的非根层都存在隐...

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

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

  • 02.5-CALayer和CATransform3D

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

  • iOS-CALayer (四)

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

  • iOS 动起来

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

  • iOS 动画

    一、CALayer CALayer很多属性在修改时都能形成动画效果(不需要借助动画类),这种属性称为“隐式动画属性...

  • iOS的Tips

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

  • iOS动画篇_CoreAnimation(超详细解析核心动画)

    引言 之前说到CALayer以及子类动画,并且CALayer的有些属性自带隐式动画,不明白的可自行查看之前的文章,...

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

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

  • CALayer隐式动画

    事务: 事务实际上是Core Animation用来包含一系列属性动画集合的机制,任何用指定事务去改变可以做动画的...

网友评论

    本文标题:从零到一学习CALayer(三.CALayer的隐式动画)

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