有没有人注意到iPhone 6模拟器的状态栏颜色没有使用正确的样式?
我将UIStatusBarStyle
设置为UIStatusBarStyleLightContent
,将UIViewControllerBasedStatusBarAppearance
设置为NO
。
除了6和6 Plus外,这适用于iOS8上的所有手机。在我的appDelegate中,我可以使用UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)
设置它,但这不会为启动屏幕设置它。当我想要轻松的内容时,它仍然想要黑暗。有没有人有这方面的解决方案。我需要添加一个新项目吗?
答案 0 :(得分:15)
一个选项是在plist中将UIViewControllerBasedStatusBarAppearance
设置为YES
,然后在每个视图控制器中都有此方法
- (UIStatusBarStyle) preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
做屁股很痛苦,绝对不是最好的解决方案。就目前而言,这适用于我的所有视图控制器,但我仍然在寻找替代解决方案。
修改强>
找到了更好的解决方案。在plist中保持UIViewControllerBasedStatusBarAppearance
到NO
和Status bar style
到UIStatusBarStyleLightContent
,然后从图像资源中选择+ -> New Launch Image
添加正确的启动图像。这将阻止iPhone 6/6 +将应用程序缩放到屏幕大小并显示灯状态栏。正确的屏幕尺寸为:
iPhone 4/4S: 640x960 px
iPhone 5/5S: 640x1136 px
iPhone 6: 750x1334 px (edited)
iPhone 6+: 1242x2208 px
我不能因此而受到赞扬,只是证明它有效。我在这里找到了解决方案https://stackoverflow.com/a/25985800/3247035和http://beageek.biz/how-to-create-launch-images-app-xcode-ios/
答案 1 :(得分:7)
我有同样的问题并由
解决- (void)viewDidLoad {
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
我很懒,所以我创建了一个控制器来添加它,所有其他人继承它
答案 2 :(得分:1)
我在回复this post时也提到了这一点,但我发现的唯一解决方法是将您的应用转换为使用iPhone 6和6+资产。
在资产管理器中提供正确大小的加载屏幕资源后,您的应用将尊重您的状态栏样式设置。
For iPhone 6:
750 x 1334 (@2x) for portrait
1334 x 750 (@2x) for landscape
For iPhone 6 Plus:
1242 x 2208 (@3x) for portrait
2208 x 1242 (@3x) for landscape
您还应该仔细检查您是否将状态栏样式设置为UIStatusBarStyleLightContent。这可以通过两种方式完成:
答案 3 :(得分:0)
pfryerda回答是正确的,启动图像是解决问题的方法。我甚至不知道就解决了我的问题。我使用了“常规信息”选项卡的新Launch Screen File
部分,并将我的启动屏幕设置为自己独立的故事板。在故事板中,我创建了一个调整大小到全屏的视图,我知道更长时间有这个问题,因为启动屏幕始终是正确的大小。
回顾一下如何创建启动画面故事板:
创建名为LaunchScreen.storyboard的空白故事板文件。
转到目标设置,然后在“常规”选项卡上,选择故事板作为“启动屏幕文件”。 Xcode会将相应的UILaunchStoryboardName密钥添加到您应用的Info.plist中。当存在此密钥时,Xcode将优先于您可能设置的任何启动图像。
将视图控制器场景添加到故事板。将一些子视图添加到场景中并使用约束对其进行定位。在设备上启动应用程序时,操作系统应将场景用作启动屏幕。
您可以在此处找到更多信息:http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/