我想在我的应用程序中从“初始化屏幕”转换为“演示屏幕”。初始化屏幕的状态栏可见,但我希望演示屏幕使用全屏。我希望状态栏在初始化屏幕时消失,而不是在它之前或之后消失。
在初始化屏幕视图控制器的回调中,说“准备好运行”我这样做:
[UIView transitionFromView: setupViewController.view toView: runViewController.view
duration: 1.0 options: UIViewAnimationOptionTransitionCurlUp
completion: ^(BOOL finished) {
[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationSlide];
}];
但是这样状态栏就会出现,直到卷曲动画完成,然后它会向上滑动。
所以我尝试了这个:
[UIView transitionFromView: setupViewController.view toView: runViewController.view
duration: 1.0 options: UIViewAnimationOptionTransitionCurlUp
completion: nil];
[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationSlide];
但是这样,状态栏会在卷曲动画开始之前向上滑动。
所以我尝试了这个:
[UIView beginAnimations: @"whatever" context: nil];
[UIView setAnimationDuration: 1.0];
[UIApplication sharedApplication].statusBarHidden = YES;
[UIView transitionFromView: setupViewController.view toView: runViewController.view
duration: 1.0 options: UIViewAnimationOptionTransitionCurlUp completion: nil];
[UIView commitAnimations];
我得到了同步动作,但状态栏只是消失而不是向上滑动。
我真正想要的是状态栏与初始化屏幕卷曲(如果我使用卷曲或翻转,如果我使用翻转)来显示全屏但我会满足于状态栏在初始化屏幕卷曲的1.0秒间隔期间向上滑动。
感谢您的任何建议......
答案 0 :(得分:1)
似乎第三种方法是按照您的意愿工作,除非您使用过该行:
[UIApplication sharedApplication].statusBarHidden = YES;
而不是:
[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationSlide];
允许您设置上滑动画。
但是,我不认为可以在卷曲动画中包含状态栏。