iPhone 6状态栏颜色

时间:2014-09-11 22:44:47

标签: ios ios8 ios-simulator statusbar iphone-6

有没有人注意到iPhone 6模拟器的状态栏颜色没有使用正确的样式?

我将UIStatusBarStyle设置为UIStatusBarStyleLightContent,将UIViewControllerBasedStatusBarAppearance设置为NO

除了6和6 Plus外,这适用于iOS8上的所有手机。在我的appDelegate中,我可以使用UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false)设置它,但这不会为启动屏幕设置它。当我想要轻松的内容时,它仍然想要黑暗。有没有人有这方面的解决方案。我需要添加一个新项目吗?

4 个答案:

答案 0 :(得分:15)

一个选项是在plist中将UIViewControllerBasedStatusBarAppearance设置为YES,然后在每个视图控制器中都有此方法

- (UIStatusBarStyle) preferredStatusBarStyle {
    return UIStatusBarStyleLightContent;
}

做屁股很痛苦,绝对不是最好的解决方案。就目前而言,这适用于我的所有视图控制器,但我仍然在寻找替代解决方案。

修改

找到了更好的解决方案。在plist中保持UIViewControllerBasedStatusBarAppearanceNOStatus bar styleUIStatusBarStyleLightContent,然后从图像资源中选择+ -> 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/3247035http://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+资产。

在资产管理器中提供正确大小的加载屏幕资源后,您的应用将尊重您的状态栏样式设置。

来自https://developer.apple.com/library/iOS/documentation/userexperience/conceptual/mobilehig/LaunchImages.html

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。这可以通过两种方式完成:

  • 在您的应用程序的info.plist中设置UIStatusBarStyle = UIStatusBarStyleLightContent
  • 在项目中的所有适用的UIViewController中覆盖方法preferredStatusBarStyle :. (对于此选项,请确保在应用程序的info.plist中有UIViewControllerBasedStatusBarAppearance = YES)

答案 3 :(得分:0)

pfryerda回答是正确的,启动图像是解决问题的方法。我甚至不知道就解决了我的问题。我使用了“常规信息”选项卡的新Launch Screen File部分,并将我的启动屏幕设置为自己独立的故事板。在故事板中,我创建了一个调整大小到全屏的视图,我知道更长时间有这个问题,因为启动屏幕始终是正确的大小。

回顾一下如何创建启动画面故事板:

  1. 创建名为LaunchScreen.storyboard的空白故事板文件。

  2. 转到目标设置,然后在“常规”选项卡上,选择故事板作为“启动屏幕文件”。 Xcode会将相应的UILaunchStoryboardName密钥添加到您应用的Info.plist中。当存在此密钥时,Xcode将优先于您可能设置的任何启动图像。

  3. 将视图控制器场景添加到故事板。将一些子视图添加到场景中并使用约束对其进行定位。在设备上启动应用程序时,操作系统应将场景用作启动屏幕。

  4. 您可以在此处找到更多信息:http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/