伙计们,我想在代码中隐藏状态栏。加载视图后,状态栏会显示,一段时间后会自动隐藏。怎么做?
问问题
583 次
4 回答
3
你想要UIApplication
的setStatusBarHidden:withAnimation:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
请参阅文档。
于 2012-07-07T05:25:57.150 回答
0
您必须选择您的项目并Hide during application launch
在标题 General 中选择,Deployment Info
如下所示:
在 info.plist 中设置View controller-based status bar
为 NO:
于 2014-02-03T23:31:46.647 回答
0
尚未对其进行测试,可能有更好的方法,但是如果您将以下内容放入加载视图函数中:
[self performSelector:@selector(hideNavBar) withObject:nil afterDelay:0.0];
然后有这个功能
-(void) hideNavBar {
if (self.navigationController.navigationBar.hidden == NO)
{
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
}
您可能必须在视图动画块中隐藏导航栏。但一些组合应该有效
查看 链接
于 2012-07-07T05:19:29.230 回答
0
当 applicationDidBecommeActive (“加载后的视图”)时,您可以简单地在 AppDelegate 中执行此操作。在 400 毫秒后设置隐藏状态,使用 UIView 动画块并计算您的根视图控制器的导航栏
// AppDelegate.m
#import "AppDelegate.h"
#import "SomeViewController.h"
@interface AppDelegate ()
@property (nonatomic, strong) SomeViewController *someViewController;
@end
@implementation AppDelegate
- (void)applicationDidBecomeActive:(UIApplication *)application
{
UINavigationBar *navBar = self.someViewController.navigationController.navigationBar;
if (![[UIApplication sharedApplication] isStatusBarHidden]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationSlide];
[UIView animateWithDuration:0.4
animations:^{
navBar.frame = CGRectMake(navBar.frame.origin.x, 0, navBar.frame.size.width, navBar.frame.size.height);
} completion:nil];
}
}
@end
就是这样,“加载视图(didBecomeActive)后,状态栏将显示并在一段时间后自动隐藏(400ms)”
于 2013-05-03T18:51:21.277 回答