美文网首页
iOS 转场动画练习(OC版)

iOS 转场动画练习(OC版)

作者: 众里摆渡 | 来源:发表于2019-12-11 16:57 被阅读0次

    最近几天一直在整转场动画,以前觉得很难,在实际操作之后,发现开发过程中,我们所需要做的,也就是两个View(fromview 和 toview)在ContainView上的动画而已,控制动画过程这些操作,我们只需要实现代理,苹果已经帮我们写好,直接调用就行!

    过程中遇到以下几个点,Mark下:

     iOS13后present转场有了很大的变化,图层改变了。iOS13之前,presentedView即为presentedController的view,iOS13之后改成了新View,将presentedController的view作为新View的子视图,并且在新View上,添加了一个Pan手势。

    push: ApushB,使用转场动画,会使B的系统侧滑手势失效,我的理解是这样,不对求指出:系统侧滑手势是自带了delegate的,是私有类_UINavigationInteractiveTransition的一个实例,而这个实例,正是NavigationController的私有属性_cachedInteractionController,而我们做转场动画,有实现

    - (nullable id <UIViewControllerInteractiveTransitioning>)navigationController:(UINavigationController *)navigationController  interactionControllerForAnimationController:(id) animationController  这个方法,替换了delegate的实例,所以导致侧滑手势失效。

    佐证:当ApushB使用转场动画,上面方法返回nil,B的系统侧滑手势还是OK的!

    注意:ApushB自定义转场后,B返回A,A的侧滑会失效!!!所以我在A didShow 之后,还原了NavigationController的代理。

    Demo: https://github.com/shr191116/TransitionDemo.git

    动画是电商App常用的列表跳详情动画,网上动画一大堆,我就不抄了....

    相关文章

      网友评论

          本文标题:iOS 转场动画练习(OC版)

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