Talent 说: iOS 之动画效果

来源:互联网 时间:2017-01-22


说实在的,写这篇文章的原因--额,首先是终于能闲下来了,可以平静下心态做一些自己喜欢的事儿,告别项目开发时候的暴躁于焦虑.再者,希望将平时用到的东西总结归纳下.比起一篇一篇的在论坛上找博客,我还是觉得自己写的东西更能让自己快速的利用起来;


 一、UIView 类动画 于 动画块动画
为什么要将这两个放在一起说呢,直接来说,就是简单暴力的动画学;
UIView 类动画:
上代码--


Paste_Image.png

简单来说,就是在[UIView beginAnimations:nil context:nil] 开始动画 与 [UIView commitAnimations] 提交动画 之间添加各种属性。这段代码就是设置在5s 内 [UIView setAnimationDuration:5] 让_animationView 坐标下滑 150;


具体效果如下:



animation-1.gif

其他属性方法如下:


(void)setAnimationDidStopSelector:(nullable SEL)selector;
(void)setAnimationDuration:(NSTimeInterval)duration;
(void)setAnimationDelay:(NSTimeInterval)delay;
(void)setAnimationStartDate:(NSDate *)startDate;
(void)setAnimationCurve:(UIViewAnimationCurve)curve;
(void)setAnimationRepeatCount:(float)repeatCount;
(void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;
(void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState; ).
(void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache;
(void)setAnimationsEnabled:(BOOL)enabled;
(BOOL)areAnimationsEnabled;
(void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation NS_AVAILABLE_IOS(7_0);
(NSTimeInterval)inheritedAnimationDuration NS_AVAILABLE_IOS(9_0);

额,原谅我的懒惰,直接从api中截取的。因为说实在的--大部分我们都不会用到...


此时,根据这个小小的动画,我们可以写个demo,做下我们常见的一个效果,这次先上图:



animation-2.gif

额,样式是丑了点,将就着看吧...


其实就是简单的动过来,再动回去...



Paste_Image.png

需要注意的一点是,我并没有加限制条件,具体需求下加具体的限制,才可使用;


然后,就是UIView的块代码了,其实方式是于 UIView的类动画差距不大,这也是我想将他们放在一起的原因.


最简单的代码:



Paste_Image.png

else:



Paste_Image.png

else:



Paste_Image.png

二、Spring Animation


Spring Animation 是iOS7以后才添加的方法。与以往的动画效果相比,增加了更炫的效果实现属性。先看下效果演示:



animation-3.gif

明显的,改变了初始速度以及增加了弹性效果--SO:



Paste_Image.png

--------------------------------


 动画效果的帧动画是我认为比较完美的动画效果,下次博客讲详细介绍;
参考博客:[http://www.cnblogs.com/GarveyCalvin/](http://www.cnblogs.com/GarveyCalvin/)



相关阅读:
Top