我的应用中有一个部分,我正在使用UIViewAnimationTransitionFlipFromLeft
动画更改视图。同时,我更改UINavigationItem
的内容以匹配新视图,特别是titleView
和rightBarButtonItem
。因为我只知道动画何时开始并且已经完成,所以这似乎是我可以更新UINavigationItem的唯一时间。
所以,对我的问题:
是否可以以类似的方式更改titleView
和rightBarButtonItem
,即。翻看UIViewAnimationTransitionFlipFromLeft
动画?
如果没有,有什么方法可以在视图翻转的中途更新UINavigationItem
,而不是在动画的开头或结尾处更新?
答案 0 :(得分:0)
如果您使用transitionWithView:duration:options:animations:completion:
进行转换,则会知道持续时间。这意味着你可以使用
performSelector:withObject:afterDelay:
方法在完成一半转换后运行方法。在此方法中,您只需更新导航项即可。
答案 1 :(得分:0)
你可以解决1。
你需要完全控制导航栏才能这样做,所以你应该摆脱那里使用的那个:
self.navigationController.navigationBarHidden = YES;
在你的UIViewController上并在那里放置你自己的navBar视图(它有一个subview,它是titleView和rightBarButtonItem)。这样,您可以像使用其他任何UIView一样翻转这些视图:
+[UIVIew setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache]
或
+[UIVIew transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion]
或类似的东西。希望这有帮助,如果您需要更多详细信息,请告诉我。