导航栏自定义转场动画

10
我已经使用以下协议创建了视图控制器之间的自定义转换:

UIViewControllerAnimatedTransitioningUIViewControllerTransitioningDelegate

现在,是否可以使用默认的UINavigationBar为标题创建自定义转换?目前它们仅在视图控制器之间淡入淡出。或者我必须从头开始构建自己的导航栏视图?
2个回答

19

WWDC 2013视频第218讲表明所有自定义转场都会淡入淡出导航栏,而且目前还没有办法自定义这种行为。


谢谢您确认这个问题 :) 我不确定是不是我在谷歌上的搜索方式有误,因为我找不到任何结果。 - Mads Lee Jensen
2
有一个网站可以转录所有的wwdc会议。您可以在此处找到218会议的转录:http://asciiwwdc.com/2013/sessions/218 - gardenofwine
这个情况自那时以来有没有改变?如果使用 UIBarButtonItems,是否仍然无法自定义转换期间的动画? - Petar
很遗憾,这一点至今仍未改变。 - Tim
所以,这可能是不好的实践,但至少改变淡入淡出持续时间的一个半工作方法是将transitionDuration时间间隔设置为您想要的淡入淡出时间,并手动为实际动画使用不同的持续时间。我之前的transitionDuration为0.65,看起来很糟糕,所以我现在将其设置为0.2,看起来更好了。 - Kyle Bashour
如果您缺少一种选择自定义转换的标准移位动画的方法,您可能需要复制我的雷达:http://openradar.appspot.com/23620167 - Ortwin Gentz

3
如果您的转场既是自定义的又是交互式的,那么您可以通过UIViewControllerTransitionCoordinator获得一些优势。
请参见此处
例如,在作为“目标”(target)视图控制器的viewWillAppear中:
[[self transitionCoordinator] animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {

    // mess around with stuff here

} completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {

    // all done now
}];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接