Kru*_*nal 15 cocoa-touch ios uistatusbar
我想在iOS 7上更改状态栏的背景颜色,我正在使用此代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UIApplication sharedApplication].statusBarHidden = NO;
self.window.clipsToBounds = YES;
[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleLightContent];
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
...
...
}
Run Code Online (Sandbox Code Playgroud)
当我写这个时,它会显示黑色背景的状态栏; 我希望它有一个红色背景.

如何更改状态栏的颜色为红色背景而不是黑色?
Tej*_*ina 27
在iOS 7中处理状态栏的背景颜色时,有两种情况
案例1:使用导航栏查看
在这种情况下,请在viewDidLoad方法中使用以下代码
UIApplication *app = [UIApplication sharedApplication];
CGFloat statusBarHeight = app.statusBarFrame.size.height;
UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -statusBarHeight, [UIScreen mainScreen].bounds.size.width, statusBarHeight)];
statusBarView.backgroundColor = [UIColor yellowColor];
[self.navigationController.navigationBar addSubview:statusBarView];
Run Code Online (Sandbox Code Playgroud)
案例2:没有导航栏的视图
在这种情况下,请在viewDidLoad方法中使用以下代码
UIApplication *app = [UIApplication sharedApplication];
CGFloat statusBarHeight = app.statusBarFrame.size.height;
UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, statusBarHeight)];
statusBarView.backgroundColor = [UIColor yellowColor];
[self.view addSubview:statusBarView];
Run Code Online (Sandbox Code Playgroud)
Sah*_*jan 15
在iOS 7及更高版本中,状态栏是透明的.将backgroundColor视图设置为状态栏所需的颜色.
或者,您可以在视图顶部添加一个20px高的红色子视图.
有关更多信息,请参阅Apple Transition Guide.
另外,确保你的preferredStatusBarStyle是UIStatusBarStyleLightContent.并在您的Info.plist中将"查看基于控制器的状态栏外观"设置为"否".
小智 8
目标c
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UIApplication sharedApplication] setStatusBarHidden:false];
UIView *statusBar=[[UIApplication sharedApplication] valueForKey:@"statusBar"];
statusBar.backgroundColor = [UIColor redColor];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
这对我有用.我希望这对你也有帮助.
@Teja Kumar Bethina提供的内容很有帮助,但最好从UIApplication单例中获取statusBar的高度,如下所示:
UIApplication *app = [UIApplication sharedApplication];
UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -app.statusBarFrame.size.height, self.view.bounds.size.width, app.statusBarFrame.size.height)];
statusBarView.backgroundColor = [UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32921 次 |
| 最近记录: |