核心动画编程

iOS开发CoreAnimation解读之四——Layer层动画内容

六月ゝ 毕业季﹏ 提交于 2020-04-10 07:46:12
iOS开发CoreAnimation解读之四——Layer层动画内容 一、引言 通过前几篇博客的介绍,我们可以了解到layer层可以设置许多与控件UI相关的属性,并且对于iOS开发,UIView层的属性是会映射到CALayer的,因此,可以通过UIKit和CoreAnimation两个框架来设置控件的UI相关属性,当属性发生变化时,我们可以使其展示一个动画效果。 二、CAAnimation动画体系的介绍 CAAnimation是CoreAnimation框架中执行动画对象的基类,下面有一张图,是我手画的,不太美观,但是可以将与CAAnimation相关的几个动画类的关系表达清楚: 从上图中可以看到,从CAAnimation中继承出三个子类,分别是用于创建属性动画的CAPropertyAnimation,创建转场动画的CATransition和创建组合动画的CAAnimationGroup。 我们就先从根类开始探讨。 1.CAAnimation属性和方法 CAAnimation作为动画对象的基类,其中封装了动画的基础属性,如下: //通过类方法创建一个CAAnimation对象 + (instancetype)animation; //动画执行的时序模式 @property(nullable, strong) CAMediaTimingFunction *timingFunction

iOS动画开发之四——核心动画编程(CoreAnimation)

别来无恙 提交于 2019-11-30 12:35:33
iOS动画开发之四——核心动画编程(CoreAnimation) 一、引言 前几篇博客详细介绍了有关UIView层的动画使用与相关的效果,然而这些动画是UIKit为我们封装好的核心动画层的方法,通过这些方法,我们可以用的更加简便,当然功能也十分强大,基本能达到我们项目的大多需求。但是如果你想更加自由的通过动画操作视图的属性,你就需要跳过UIKit的封装,使用CoreAnimation核心动画层的方法来实现动画。 二、开始前的准备 1、认识一个的朋友 在开始介绍核心动画的内容前,我们需要先搞明白一个东西:Layer。你可能很少听说他,可是他却无处不在,在iOS的UI开发中,任何一个View包括继承于UIView的子类上面都会有一个Layer,可以理解为Layer为单独的一层,专门负责视图的显示,而view除此之外更多负责触摸时间等逻辑处理。因此,iOS也将所有动画的操作都交给你Layer来负责。 2、Layer层可以做到的事 Layer如此神秘,那他究竟可以做到哪些事?他确实可以做很多view做不了的事情. (1)设置view的圆角属性 view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; [self.view addSubview:view]; view.backgroundColor=