我实现了自己的自定义容器视图控制器,并尝试使其与 iOS 7 视图控制器转换兼容。我使我的自定义容器视图控制器符合UIViewControllerContextTransitioning
我发送self
当我打电话时transitionDuration:
and animateTransition:
。只要我只使用动画过渡,一切都可以正常工作。
现在我想让它与交互式转换一起工作,所以我调用交互控制器startInteractiveTransition:
而不是动画控制器的animateTransition:
, using self
再次作为参数。但是,如果我使用UIPercentDrivenInteractiveTransition
作为交互控制器,它然后调用_animator
我的上下文(即容器视图控制器本身)上的方法。当然,我还没有实现这个私有且无文档的方法,所以它崩溃了......
我在实施中遗漏了什么吗?是UIPercentDrivenInteractiveTransition
只与 Apple 类兼容,因为它使用了一些实现魔法(当它要求所有内容都应该在一个UIView
动画块)?文档和头文件使我们看起来可以实现自己的容器视图控制器并仍然使用自定义转换,但这真的是真的还是只是一厢情愿,因为没有人真正这样做?
如果我不能使用UIPercentDrivenInteractiveTransition
,那么交互/动画逻辑到底应该在哪里呢?在里面UIViewControllerTransitionCoordinatorContext
目的?在里面UIViewControllerInteractiveTransitioning
对象(很可能,这个对象是驱动程序......)?或者在UIViewControllerAnimatedTransitioning
对象(这可能是真正的动画应该发生的地方,但这是否意味着调用animateTransition:
互动过程中多次?或者为交互式转换的每个步骤添加新方法?)
编辑:文档说:
百分比驱动的交互式过渡对象驱动一个视图控制器的消失和另一个视图控制器的出现之间的自定义动画。它依赖于一个过渡动画师委托——一个采用以下方法的自定义对象:UIViewControllerAnimatorTransitioning
协议——设置和执行动画。
没有UIViewControllerAnimatorTransitioning
协议。假设这是一个错误,或者是 iOS 7 开发过程中发生的更名,它实际上是UIViewControllerAnimatedTransitioning
协议,我们如何将交互控制器与动画控制器链接起来?我猜这是视图控制器驱动转换的责任,但我没有看到任何 API 来建立此链接,所以这意味着UIPercentDrivenInteractiveTransition
确实是为苹果课程保留的吗?
我试图自己做同样的事情,最终写了自己的UIPercentDrivenInteractiveTransition
相等的。似乎百分比驱动的过渡要求动画并在交互式过渡开始后实际启动它。不过,我在取消时实现反向动画时遇到了一些麻烦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)