2016-03-27 9 views

ответ

4

Вы не можете изменить цвет строки состояния, поскольку он не имеет фона для изменения.

Однако вы можете создать представление на высоте 20px и поместить его за панель состояния.

Если у вас есть UINavigationBar, вы можете либо удалить цвет фона UINavigationBar, либо добавить subview в UINavigationBar с высотой на 20 пикселей и присвоить ему цвет строки состояния.

Я нашел это на GitHub, вы можете проверить код и выяснить, как изменить цвет для верхней 20px https://github.com/remirobert/RRMaterialNavigationBar

0

Одно решение состоит в этих двух строк кода в вашем applicationDidFinishLaunching, в AppDelegate:

UIApplication.sharedApplication().keyWindow?.backgroundColor = UIColor.greenColor() 
UINavigationBar.appearance().clipsToBounds = true 

Это в основном изменит цвет фона statusBar для всех наблюдаемых объектов просмотра вашего приложения, вы также должны установить цвет фона для clearColor() для всех ваших контроллеров viewControllers.

+0

Я не смог установить цвет «keyWindow» с помощью этого метода –

1

Как говорится, вы можете создать представление 20px с желаемым цветом.

Сначала вам нужно, чтобы скрыть строку состояния в info.plist: - Set View Controller на основе строки состояния внешнего вида в настоящее время нет

Затем вы можете установить новый цвет что-то вроде этого в AppDelegate :

UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, 20)]; 
view.backgroundColor=[UIColor blackColor]; 
[self.window.rootViewController.view addSubview:view]; 
Смежные вопросы