CoreAnimation动画

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

CoreAnimation

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

CoreAnimation类间关系

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

案例

多个动画套入到动画组

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

添加动画到组中

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

代码

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

推荐阅读更多精彩内容