美文网首页
仿格瓦拉电影点击效果

仿格瓦拉电影点击效果

作者: 鐵甲陳小寶 | 来源:发表于2016-05-05 23:52 被阅读220次

一直觉得格瓦拉的点击动效做的很好,一直很想模仿一下,但是,懒癌患者啊。
前面也看到了叶孤城大大(好像是,但是看github和简书都没有了?)和
这位帅哥的代码,其实他们已经将80%的工作都做了,我加的很少。
终于昨天下定决心要把它撸出来(污一波,嘻嘻)
效果如图:

d2f0bbaddab0ad6109d3fd31005537da.gif
不知道模仿了多少,大概意思吧。

转场动画

在iOS7之后,苹果提供了自定义转场动画的API,具体的可以阅读obj.cn的文章,这里面讲的很详细,首先就是要自定义一个实现UIViewControllerAnimatedTransitioning 这个协议的对象,由这个对象负责处理转场的动画.

UIViewControllerAnimatedTransitioning协议

该协议由2个需要我们实现的方法,

  • (NSTimeInterval)transitionDuration:(id <UIViewControllerContextTransitioning>)transitionContext和
  • (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
    上面的是动画的时长,下面的方法提供了一个context,从该context里面我们可以的到转场的开始和结束控制器,时长我们设定为1秒钟
    时长.png
    第二个方法内我们的代码比较多
    第二个方法.png
    首先是获取开始的controller和结束的controller,然后我们开始做动画。
    首先是位移动画,这里直接使用UIview的动画偷懒,哈哈。设置开始controller的imageview的frame从开始的controller变为结束的controller的(有点绕),并要设置shadow,使imageview有种提上来的感觉。
    结束之后将结束controller显示出来,并开始mask动画,就是上文提到的那么仁兄的思路(有关mask动画不懂的可以Google一下),到此大部分动画就完成了,但是如果要做到格瓦拉那样的,还需要多做点其他的操作。
    这篇干货基本等于0,献丑了。
    在此要感谢HenryCheng
    相关资料:
    http://www.jianshu.com/p/8c29fce5a994
    http://objccn.io/issue-5-3/
    代码放在github

相关文章

网友评论

      本文标题:仿格瓦拉电影点击效果

      本文链接:https://www.haomeiwen.com/subject/kbodrttx.html