状态栏文本颜色iOS 7

AJ1*_*112 60 objective-c storyboard ios uistoryboard ios7

我无法更改iOS 7 SDK状态栏中的文本颜色.目前它的黑色,我希望它在故事板中为我的所有视图控制器都是白色的.

我在StackOverflow上看到了很少的问题,比如THIS,THISTHIS,但它们没有多大帮助.也可能是因为我无法在plist文件中找到UIViewControllerBasedStatusBarAppearance为YES.

任何人都可以告诉我将故事板中所有视图控制器的状态栏文本颜色设置为白色的正确方法吗?提前致谢!

小智 199

让我给你一个完整的答案.更改状态栏文本颜色非常容易,但在iOS 7中专门针对新手来说有点混乱.

如果你试图通过选择视图控制器并转到右侧的模拟指标,在StoryBoard中将颜色从黑色更改为白色,它将无法工作,我不知道为什么.它应该通过这样改变,但任何方式.

其次,您不会在plist中找到UIViewControllerBasedStatusBarAppearance属性,但默认情况下它不在那里.您必须通过单击+按钮自己添加它,然后将其设置为NO.

ios 7状态栏文本颜色

最后,您必须转到AppDelegate.m文件并在didFinishLaunchingWithOptions方法中添加以下内容,添加以下行:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)

这会将所有视图控制器的颜色更改为白色.希望这可以帮助!

  • 使用在您的ViewController此导航栏委托方法,其呈现imagepicker-(无效)navigationController:(UINavigationController的*)navigationController willShowViewController:(的UIViewController*)的viewController动画:(BOOL)动画{[[UIApplication的sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; }} (4认同)
  • KC.,我写完了,一切正常.但是当我在我的应用程序中打开相机胶卷时,它会将状态栏文本颜色设置为黑色,当我关闭相机胶卷状态栏时,我的应用程序中有黑色文本.我尝试在视图控制器中使用 - (UIStatusBarStyle)preferredStatusBarStyle来设置颜色.但由于未知的原因,它没有被召唤.而目前我还没有找到解决方案. (3认同)
  • 我和奥列格有同样的问题.看似苹果图像选择器以这种方式处理时会覆盖默认值,并在完成后拒绝切换回来. (3认同)
  • 我也看到了与@Oleg和@MattCheetham相同的问题.当使用APple图像选择器时,即使在图像选择器被解除后,状态栏也会完全变黑并保持这种状态.这里列出的修补程序不会影响这一点,UIViewController上的类别也不会覆盖-`(UIStatusBarStyle)preferredStatusBarStyle` (2认同)

Abd*_*ahC 42

如果您正在寻找UIViewControllerBasedStatusBarAppearance,则需要单击将鼠标悬停在plist文件中的根元素上时出现的小加号.

plist文件

执行此操作后,将显示一个新行 - 从下拉列表中选择"查看基于控制器的状态栏外观"并将NO其设置为其值.(该友好名称在内部声明为UIViewControllerBasedStatusBarAppearance)

接下来,在应用程序委托中调用以下方法应将所有视图控制器的状态栏颜色设置为白色:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)


小智 24

UIViewControllerBasedStatusBarAppearance在plist中设置为YES

viewDidLoad做一个[self setNeedsStatusBarAppearanceUpdate];

添加以下方法:

-(UIStatusBarStyle)preferredStatusBarStyle{ 
    return UIStatusBarStyleLightContent; 
}
Run Code Online (Sandbox Code Playgroud)


Leo*_*ica 16

这是YES在默认情况下,所以你不会看到它.你需要添加

UIViewControllerBasedStatusBarAppearance
Run Code Online (Sandbox Code Playgroud)

你的plist并把它设置为NO.

然后你可以打电话

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

61729 次

最近记录:

11 年,3 月 前