同时状态栏隐藏和视图转换

时间:2011-09-26 20:34:34

标签: objective-c ios animation statusbar

我想在我的应用程序中从“初始化屏幕”转换为“演示屏幕”。初始化屏幕的状态栏可见,但我希望演示屏幕使用全屏。我希望状态栏在初始化屏幕时消失,而不是在它之前或之后消失。

在初始化屏幕视图控制器的回调中,说“准备好运行”我这样做:

[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秒间隔期间向上滑动。

感谢您的任何建议......

1 个答案:

答案 0 :(得分:1)

似乎第三种方法是按照您的意愿工作,除非您使用过该行:

[UIApplication sharedApplication].statusBarHidden = YES;

而不是:

[[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationSlide];

允许您设置上滑动画。

但是,我不认为可以在卷曲动画中包含状态栏。