2015-02-06 3 views
5

В моем представлении нет панели навигации, но я хочу отображать содержимое в строке состояния. Я проверил протяжные грани под верхними барами, под непрозрачными полосами в моем контроллере просмотра, представление, которое я хочу отобразить в строке состояния, имеет 0 ограничений вертикального расстояния до верхнего руководства по макету, но все же, вот что я получаю:Расширение представления UIViewController без панели навигации в строке состояния

enter image description here

В строке состояния есть 20px сплошной белый фон, который я не хочу. Я хочу, чтобы мой взгляд перекрываться под строкой состояния, так же как ниже макет:

enter image description here

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

+0

Означает ли это, что вы скрыли навигацию navigationController? –

+0

@EdAbe да, я скрыл панель навигации, так как у меня есть некоторые настроенные представления, которые я использую как верхнюю панель/панель навигации. Но мне нужно также выйти за панель состояния. –

+0

Установили ли вы расширенные макеты для контроллера вида к реберу прямоугольника. Для меня настройка навигационной панели как скрытой, а расширенный макет для нулевого прямоугольника заставил его работать. –

ответ

5

После исследования десятков страниц в течение нескольких часов, я нашел ответ:

for (NSLayoutConstraint *constraint in self.view.constraints) { 
    if((constraint.firstItem == self.topLayoutGuide && constraint.secondItem == self.view) || 
     (constraint.secondItem == self.topLayoutGuide && constraint.firstItem == self.view))   { 
     constraint.constant = -20; 
    } 
} 

Для тех, кто интересно, я не использовал конкретный ответ один, но производное решение от этого вопроса: iOS7 - View under status bar - edgesForExtendedLayout not working.

+0

Когда вы добавляете представление с раскадрой или кодом, почему бы не установить смещение от topLayoutGuide до -20? – hsafarya

+0

@hsafarya Не знаю. Я думаю, что мой ответ и то, что вы говорите, делают то же самое. Вместо того, чтобы перемещать объект -20pt из направляющей, я прикрепляю объект к направляющей и перемещая сам направляющий элемент -20pt. Они оба будут работать. –

1

На контроллере вида или контроллере родительского вида вы должны установить automaticallyAdjustsScrollViewInsets в NO. Предыдущий ответ немного взломан, поскольку структура предоставляет свойство, контролирующее это поведение.

+0

это не работает –

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