所以我的应用中的状态栏目前看起来像这样:
我觉得它看起来像这样:
2 http://mojoimage.com/free-image-hosting-12/22iOS7_StatusBar-copy.png
因此它带有白色文字的黑色。目前它并没有在这个特定的屏幕上工作,因为背景不是黑色的。我已经将pList中的Status Bar Style
设置为UIStatusBarStyleLightContent
。
我还要补充一点,View是最初的ViewController,它没有嵌入UINavigationController
:
答案 0 :(得分:3)
您可以将其设置为浅,然后在其后面抛出视图。如果您在应用中允许,则还需要考虑设备轮换 的夫特:强>
override func viewDidLoad() {
super.viewDidLoad()
let statusBG = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: 21))
statusBG.backgroundColor = UIColor.blackColor()
view.addSubview(statusBG)
}
<强>目标-C:强>
- (void)viewDidLoad {
[super viewDidLoad];
UIView *statusBG = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 21)];
statusBG.backgroundColor = [UIColor blackColor];
[self.view addSubview:statusBG];
}
答案 1 :(得分:0)
因为在iOS 6或更早版本中,状态栏不是半透明的,所以最好根据iOS版本执行此操作。在viewDidLoad
:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
UIView *statusBarView=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)];
statusBarView.backgroundColor=[UIColor blackColor];
[self.view addSubview:statusBarView];
}
其中SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO
:
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
这将为您提供一个黑色背景和白色文本的状态栏。
答案 2 :(得分:0)
在你的AppDelegate applicationDidFininshLaunchingWithOptions方法中写下代码。这有助于你的所有视图控制器。你不需要在每个视图控制器中添加代码。
[UIApplication sharedApplication].statusBarHidden=NO;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
[application setStatusBarHidden:NO];
self.window.clipsToBounds=YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
else
{
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
[application setStatusBarHidden:NO];
self.window.clipsToBounds=YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
然后你的yourprojectName.plist给出
Status bar is initially hidden is NO
View controller-based status bar appearance is YES