Навигационная панель появляется над представлениями с новым iOS7 SDK
CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];
UISearchBar *mySearchBar = [[UISearchBar alloc]
initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];
mySearchBar.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;
UITableView *myTableView = [[UITableView alloc]
initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];
myTableView.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];
В более ранних версиях он работает правильно. Панель поиска появляется подstatusbar
и панель навигации.tableview
появляется под строкой поиска
Но когда я запускаю это наXcode 5 sdk iOS 7
панель поиска не видна (я думаю, что она находится под строкой состояния и панелью навигации), а также панель навигации появляется над представлением таблицы.
Будет ли это исправленоiOS 7
стабильный релиз?
Или это проблема моего кодирования?
Или мы должны справиться с этим, добавив(y = statubar height + nav bar height)
значение дляiOS 7
?
Я недавно загрузил Xcode 5 DP для тестирования своих приложений в iOS 7. Первое, что я заметил и подтвердил, это то, что границы моего представления не всегда изменяются с учетом строки состояния и панели навигации.
В viewDidLayoutSubviews я печатаю границы представления:
{{0, 0}, {320, 568}}
В результате мой контент появляется под панелью навигации и строкой состояния.
Я знаю, что мог бы сам учесть высоту, получив высоту основного экрана, вычтя высоту строки состояния и высоту панели навигации, но это кажется ненужной дополнительной работой.
Кто-нибудь еще сталкивался с этой проблемой?
ОБНОВИТЬ:
Я нашел решение для этой конкретной проблемы. Установите для полупрозрачного свойства панели навигации значение NO:
self.navigationController.navigationBar.translucent = NO;
Это предотвратит отображение вида под панелью навигации и строкой состояния.
Однако я не нашел исправления для случая, когда вы хотите, чтобы панель навигации была полупрозрачной. Например, при просмотре фотографии в полноэкранном режиме, я хочу, чтобы навигационная панель была полупрозрачной, а вид под ней был обрамлен. Это работает, но когда я переключаю показ / скрытие панели навигации, я получаю еще более странные результаты. Первое подпредставлениеUIScrollView
) получает свои границы и происхождение меняется каждый раз.