2016-08-07 5 views
2

Я скрывает панель навигации на одном из экранов, и если установлено:View не гибнуть в строке состояния и строка состояния черный

navigationController?.navigationBarHidden = true 

статус бар становится черным. Кроме того, изображение не подходит для всего экрана (см. Скриншот). Если я прокомментирую эту строку, панель навигации останется на экране, а строка состояния будет белой.

Полный код:

override func viewWillAppear(animated: Bool) { 
     navigationController?.navigationBarHidden = true 
     navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) 
     navigationController?.navigationBar.translucent = true 
     navigationController?.navigationBar.backgroundColor = UIColor.clearColor() 
     navigationController?.view.backgroundColor = UIColor.clearColor() 

enter image description here

Все ограничения ImageView устанавливаются в 0, и он установлен, чтобы заполнить экран:

enter image description here

Итак, я хочу поставить ImageView в строке состояния и сделайте значки в строке состояния/текст белым. Что я делаю неправильно?

ответ

3

Вы ничего не делаете «неправильно». Вы установили верхнюю часть изображения в нижней части верхнего руководства по планированию представления контроллера. Ну, это нижняя часть строки состояния - именно там, где вы видите верх изображения.

Если вы хотите, чтобы изображение отображалось в нижней строке состояния, его верхняя часть должна быть закреплена в верхней части основного вида, а не в верхней макете.

И если вы хотите, чтобы строка состояния меняла цвет текста, вам необходимо реализовать preferredStatusBarStyle для возврата .LightContent. Если это означает, что результат preferredStatusBarStyle изменился, вам нужно будет позвонить setNeedsStatusBarAppearanceUpdate, чтобы предупредить об этом время выполнения.

+0

(Кстати, вы сделали очень хорошую работу, задавая этот вопрос : вы указали соответствующий код, снимок экрана приложения, _and_ информацию о ограничениях, которые позиционируют изображение. Я хочу, чтобы все предоставили такую ​​четкую информацию!) – matt

+0

Спасибо за ответ! Единственный доступный вариант верхнего интервала - «Руководство по началу макета»: http://imgur.com/uNij6yb – arts777

+0

Спасибо, я установил ширину и высоту, равную родительской, и теперь она работает. переопределение привилегированногоStatusBarStyle тоже помогло :) – arts777

1

Чтобы поместить вид изображений под строкой состояния, и имеет вид изображения заполняют UIViewControllers просмотр:

  • Очистить все ограничения для зрения изображения
  • Добавить ограничение, чтобы установить вид изображения, чтобы иметь та же ширина, что и родительский вид
  • Добавить ограничение, чтобы установить, что изображение имеет ту же высоту, что и родительский вид.
  • Подключите изображение к ближайшему соседу, как показано ниже. Добавьте ограничения

enter image description here

  • Окончательные ограничения будут выглядеть следующим образом:

enter image description here

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

  • Нет связанных вопросов^_^