Недавно я загрузил Xcode 5 DP для тестирования моих приложений в iOS 7. Первое, что я заметил и подтвердил, - это то, что мои ограничения зрения не всегда изменяется для учета строки состояния и панели навигации.
В viewDidLayoutSubviews
, я печатаю границы просмотра:
{{0, 0}, {320, 568}}
В результате мой контент появляется под панелью навигации и строкой состояния.
Я знаю, что сам мог учитывать высоту, получая высоту основного экрана, вычитая высоту строки состояния и высоту навигационной панели, но это кажется ненужной дополнительной работой.
Как я могу исправить эту проблему?
Update:
Я нашел решение для этой конкретной проблемы. Установите прозрачное свойство навигационной панели в положение NO:
self.navigationController.navigationBar.translucent = NO;
Это позволит зафиксировать представление под рамкой под панелью навигации и панель состояния.
Однако я не нашел исправления для случая, когда вы хотите, чтобы панель навигации была полупрозрачной. Например, просматривая полноэкранный режим фото, я хочу, чтобы прозрачная панель навигации была прозрачной, а вид под ней был обрамлен. Это работает, но когда я переключаю отображение/скрытие навигационной панели, я испытал еще более странные результаты. Первое подзадача (UIScrollView) получает свои границы, когда исходное значение изменяется каждый раз.