2014-05-19 6 views
0

Как изменить цвет строки состояния на пользовательский цвет при нажатии кнопки? Что-то вроде, когда горячая точка активирована.Изменение цвета строки состояния при нажатии кнопки

Я думаю, что я могу добавить subview в текущее окно и установить свойство фона на нужный цвет, но это взломать, мне интересно, есть ли лучший способ.

+0

Вы проверили http://stackoverflow.com/questions/17678881/how-to-change-status-bar-text-color-in-ios-7? – Argent

+0

Да, я сделал, но мне нужно что-то другое, мне нужно установить цветной строки состояния при нажатии кнопки. – Mhdali

ответ

0

Используйте этот код.

UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)]; 
view.backgroundColor=[UIColor redColor]; 
[self.window.rootViewController.view addSubview:view]; 

Надеюсь, что этот код пригодится для вас.

+0

Это то, что я ожидал, но, как я уже сказал, это хак, я ищу лучший способ. – Mhdali

+2

Это не взлом, это единственный вариант. В iOS 7 панель состояния прозрачна, и, поместив ее за ней, вы можете присвоить ей цвет. – rckoenes

1

Попробуйте этот код:

В вашем info.plist

  • Set View controller-based status bar appearance to NO
  • Set Status bar style to UIStatusBarStyleLightContent

В AppDelegate методе:

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) 

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) // for ios7 
{ 
    UIView *yourview=[[UIView alloc] initWithFrame:CGRectMake(0, 0,320, 20)]; 
    yourview.backgroundColor=[UIColor redColor]; 
    [self.window.rootViewController.view addSubview:yourview]; 
} 

Я думаю, это поможет вам. :)

+0

Это то, что я ожидал, но, как я уже сказал, это хак, я ищу лучший способ. Спасибо – Mhdali

+0

Не используйте '[[UIDevice currentDevice] systemVersion]' для определения версии системы, но используйте номер основания, согласно [Пример Apple] (https://developer.apple.com/library/ios/ документация/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html # // apple_ref/doc/uid/TP40013174-CH14-SW1): 'if (floor (NSFoundationVersionNumber)> NSFoundationVersionNumber_iOS_6_1)' – rckoenes

Смежные вопросы