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

仿格瓦拉电影点击效果

作者: 鐵甲陳小寶 | 来源:发表于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