有谁知道如何更改状态栏文字颜色?
我希望 text 的颜色为橙色。
我不是在谈论常规的黑色或白色
`UIStatusBarStyleLightContent`; or `UIStatusBarStyleBlackOpaque`; or whatever.
答案 0 :(得分:8)
没有记录方式将文本颜色更改为橙色。但是,它确实是可能的,因为我只是尝试了它并且它起作用了。
免责声明:这是所有未记录的领土......当您将其提交到应用商店时,它可能不会被批准。但是,你可能很幸运......
在iOS 7中,您可以这样做:
/// sets the status bar text color. returns YES on success.
/// currently, this only
/// works in iOS 7. It uses undocumented, inofficial APIs.
BOOL setStatusBarColor(UIColor *color)
{
id statusBarWindow = [[UIApplication sharedApplication] valueForKey:@"statusBarWindow"];
id statusBar = [statusBarWindow valueForKey:@"statusBar"];
SEL setForegroundColor_sel = NSSelectorFromString(@"setForegroundColor:");
if([statusBar respondsToSelector:setForegroundColor_sel]) {
// iOS 7+
[statusBar performSelector:setForegroundColor_sel withObject:color];
return YES;
} else {
return NO;
}
}
在iOS5和iOS6中也可能是这样,但我还没有尝试过,因为它还有很多工作要做。但是我找到了一种感兴趣的方法(在iOS 5和iOS 6中可用)。类UIStatusBarItemView
有一个名为-textColorForStyle:
的实例方法(它接受一个整数并返回一个对象)。您可能可以对其进行修补以返回您喜欢的任何颜色。
答案 1 :(得分:3)
您无法将其更改为橙色。
黑色和白色是目前唯一可用的状态栏内容/特色颜色。
Apple UI指南提到不要创建自定义状态栏。
状态栏中内容/文字的默认颜色为黑色,如果状态栏后面的内容很暗,这可能会导致状态栏变得不可读。
为了解决此问题,您可以设置应用程序和/或视图的UIStatusBarStyle
。 UIStatusBarStyleLightContent
将状态栏中内容的颜色更改为白色;或者,UIStatusBarStyleDefault
将状态栏内容的颜色设置为黑色。