2013-10-04 2 views
5

IOS 6 вида ...Как установить Строку состояния цвета фона IOS 7

enter image description here

Точно так же я хотел бы, чтобы отобразить строку состояния в прошивке 7 как

увидеть это

enter image description here

но мой фактический выход (перекрытие)

я попробовал следуя логике

open your info.plist and set "View controller-based status bar appearance" = NO 

это не работает в моем коде ,,,

+0

@ swt- их много вопросов на SO, у вас есть –

ответ

17

Вы должны сделать 2 вещи. Во-первых, это открыть info.plist и установить "View controller-based status bar appearance" = NO

И второе, чтобы добавить эти строки в application:didFinishLaunchingWithOptions

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) 
{ 
    self.window.clipsToBounds = YES; 
    [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];  

    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; 
    if(orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) 
    { 
     self.window.frame = CGRectMake(20, 0,self.window.frame.size.width-20,self.window.frame.size.height); 
     self.window.bounds = CGRectMake(20, 0, self.window.frame.size.width, self.window.frame.size.height); 
    } else 
    { 
     self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); 
     self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height); 
    } 
} 
+0

мои приложения работают в ландшафтном режиме. но ваш код выглядит черным баром справа и слева. – SWT

+0

Обновлен ответ для поддержки обеих ориентаций. – Stanislav

+0

, но работает нормально ... но когда я поворачиваю экран, который не менялся в зависимости от ориентации экрана – SWT

9

Прочитайте эту статью: http://www.appcoda.com/customize-navigation-status-bar-ios-7/

#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] 

[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x067AB5)]; 
+0

Отличная ссылка для этих разработчиков, размещающих изображения на их UINavigationBar. – capikaw

+1

К сожалению, я не очень много сделал для своего iPad-приложения. Хорошая ссылка, хотя – cynistersix

+0

По какой-то причине это не работает для меня, раскадровки, ios7. Добавлено, что строка для AppDelegate didFinishLaunching – Fraggle

0

Переместить рамку на 20 пикселей вниз. Вы можете попробовать писать это в ViewWillappear или DidAppear

CGRect frame = self.view.frame; 
frame.origin.y = 20; 

if (self.view.frame.size.height == 1024 || self.view.frame.size.height == 768) 
{ 
    frame.size.height -= 20; 
} 
self.view.frame = frame; 

Теперь установите цвет фона окна к черному в applicationDidFinishLaunching и установить статусной шрифт должен быть белым (StatusBarContentLight)

Помните, что я предлагаю, не идеальное решение но исправление, которое будет работать красиво. Также используйте тот же код, когда приложение меняет ориентацию (ShouldAutorotate)

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