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

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地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,141评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,566评论 6 30
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 3,155评论 1 23
  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 3,056评论 0 21
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    Yiart阅读 3,864评论 3 34