CoreAnimation动画

iOSApp基本的动画就是移动,旋转,缩放 这些,UIView的分类UIViewKeyframeAnimations已经封装了一些常用的,但是如果要想自己定制动画还需要运用动画的框架

CoreAnimation

UIView封装了CALayer,当我们要设置边框,圆角的时候通常会用到这个layer, 其实UIView就是对CALayer进行了封装,并添加了触摸事件的处理,也就是说所有继承于UIView的类可见的其实都是CALayer, 做动画的时候也是对UIView上的layer操作的

CoreAnimation动画_第1张图片
CoreAnimation类间关系

看任何一个框架先了解了基本结构之后再去看细节会比较清晰, CAAnimation是核心动画的基类,实现了CAMediaTiming协议,它有三个子类CAAnimationGroup动画组,CAPropertyAnimation属性动画,CATransition转场动画,基本的动画要以通过CAPropertyAnimation实现,复杂些的可以加到动画组CAAnimationGroup当中去

案例

CoreAnimation动画_第2张图片
多个动画套入到动画组

上图中的动画是由多个border,transform.scale,cornerRadius,path等组成的较为复杂动画,动画中可以看到是由快到慢然后再回旋到初使位置,这里有个时间函数CAMediaTimingFunction来控制动画的速度,duration动画时间

CoreAnimation动画_第3张图片
添加动画到组中

至于CAAnimation的各种属性就要自己去多撸代码试, 这里说个值得注意的点, [CABasicAnimation animationWithKeyPath:@"borderColor"], keyPath 一般可能不知道要怎么写,写什么, 因为动画是对CALayer操作的,去CALayer的API中查一下Animatable 可动画的属性即可

代码

你可能感兴趣的:(CoreAnimation动画)