2013-09-19 4 views
82

Я знаю, что уже есть stackoverflowquestions, которые говорят, как изменить строку состояния для всех контроллеров представлений. Я в настоящее время меняется цвет строки состояния так:Изменение цвета строки строки состояния в заставке iOS 7

if(IS_IOS7) 
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

В application:DidFinishLaunching

Кроме того, я изменил значение UIViewControllerBasedStatusBarAppearance в PLIST к NO. Тем не менее, на всплывающем экране он по-прежнему показывает текст строки состояния с черным цветом.

Возможно ли изменить цвет текста строки состояния в заставке?

+0

Что вы имеете в виду «это по-прежнему показывает строку состояния с черным цветом»: Если ваш код работает, статус шрифт бара должен быть белым , цвет фона в строке состояния зависит от вашего изображения всплеска (который должен теперь включать высоту строки состояния - 20 пикселей) – Vinzzz

+0

Извините, я действительно пропустил текстовое слово.Я изменяю только цвет текста строки состояния. Я могу изменить его после появления заставки, но я не могу изменить его, когда происходит заставка. –

ответ

198

В файле plist проекта добавьте свойство «Стиль строки состояния» (ключ UIStatusBarStyle). Затем игнорируйте все возможные значения, перечисленные в раскрывающемся списке для этого свойства, и вместо этого введите UIStatusBarStyleLightContent.

И вы не должны устанавливать UIViewControllerBasedStatusBarAppearance в NO в своем plist, вы можете установить preferredStatusBarStyle, который вы хотите, чтобы ваши контроллеры.

+0

Настройка UIStatusBarStyleLightContent crash Xcode –

+0

Есть ли способ сделать это совместимым с тонированной панелью состояния на iOS 6? – nobre

+1

Цвет текста строки состояния либо белый, либо черный. Фон бара поступает из вашего образа запуска, а затем из представления viewController, если он простирается ниже баров. – Vinzzz

7

Установите UIViewControllerBasedStatusBarAppearance к Нет в PLIST

Затем добавьте следующий код в сделал вариант запуска отделка

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 

    [application setStatusBarStyle:UIStatusBarStyleLightContent]; 

    self.window.clipsToBounds =YES; 

    self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); 
} 

Пожалуйста, следуйте этому коду он работал для меня

+0

Это показывает белый текст в строке состояния, в то время как мой фон также свет. как я могу показать черный текст – Mangesh

+0

Mangesh на цели перейти к общим настройкам там у вас будет возможность установить стиль строки состояния –

+0

Вы могли бы написать эту первую строку немного проще, используя синтаксис точки, например: ' if (UIDevice.currentDevice.systemVersion.floatValue> = 7) {' –

29

Вы можете сделать это без написания какой-либо строки кода
Выполните следующие действия, чтобы сделать текст строки состояния белым цветом по всему окну

На вас проект PLIST файл:

  • Строка состояния стиль: UIStatusBarStyleLightContent
  • Посмотреть на базе контроллера в строке состояния внешний вид: NO
  • Строка состояния изначально скрыты: NO
+0

Принятый ответ хорош, но он не работал на всех моих контроллерах просмотра, не делая вторую марку выше. Благодаря! –

+0

«Просмотр состояния панели состояния на основе контроллера:' YES' 'все еще, кажется, делает трюк (iOS 9) –

13

Вы можете сделать следующее, чтобы получить светлую строку статуса цвета во всем приложении.

  1. Выберите название проекта в навигаторе проекта.
  2. Выберите имя цели из списка в левом столбце редактора проекта.
  3. Нажмите «Общая» в верхней части редактора проекта.
  4. Set Status Bar Style -> Light

В файле Plist добавить следующие значения:

  1. Статус бар стиль - UIStatusBarStyleLightContent
  2. Посмотреть на базе контроллера в строке состояния внешний вид - НЕТ

Это поможет вам получить строку состояния в белом цвете во всем приложении, включая SPLASH SCREEN.

+1

Это правильный ответ –

0

Вы можете сделать следующее, чтобы получить световую строку состояния цвета во всем приложении.

Выберите название проекта в навигаторе проекта. Выберите имя цели из списка в левом столбце редактора проекта. Нажмите «Общая» в верхней части редактора проекта. Set Status Bar Style -> Light

-1

Здесь Apple Guidelines/Instruction о изменении строки состояния.

Вот - Как изменить статус бара стиля:

Если вы хотите установить статус стиль бара, уровень приложений, а затем установите UIViewControllerBasedStatusBarAppearanceNO в вашем .plist»файла`.

если вы тусклая установить статус стиль бара, на виде уровня контроллера, то выполните следующие действия:

  1. Установите UIViewControllerBasedStatusBarAppearance в YES в файле .plist, если вам необходимо установить статус стиль бара только на уровне UIViewController ,
  2. В viewDidLoad добавить функцию - setNeedsStatusBarAppearanceUpdate

  3. переопределения preferredStatusBarStyle в контроллере представления.

-

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.setNeedsStatusBarAppearanceUpdate() 
} 

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

Установить значение .plist согласно статуса бар стиля уровне настройки. enter image description here


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

extension UIApplication { 

    var statusBarView: UIView? { 
     return value(forKey: "statusBar") as? UIView 
    } 

} 

// Set upon application launch, if you've application based status bar 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
     return true 
    } 
} 


or 
// Set it from your view controller if you've view controller based statusbar 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     UIApplication.shared.statusBarView?.backgroundColor = UIColor.red 
    } 

} 



Вот результат:

enter image description here

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