Какова высота верхнего бара iPhone X?
6 ответов
дисплей на iPhone X, однако, это 145pt taller чем 4,7 " дисплей, приводящ К В грубо 20% дополнительном вертикальном космосе для содержания.
для получения дополнительной информации вы получаете HIG для iphone X от apple документы и подробное описание в тут 1 и here2
высота строки состояния
ранее 20pt, теперь 44pt
из-за датчиков в верхней части дисплея новая строка состояния разделена на 2 части. Если ваш пользовательский интерфейс делает что-то особенное с этим пространством (ранее 20pt высокий, теперь 44pt), потому что он будет выше на iPhone X. убедитесь, что он может быть динамически изменен по высоте. Замечательно, что высота не будет изменена, если пользователь делает телефонный звонок или использует навигационное приложение, которое ранее было на другом айфоны.
портрет
высота панели навигации как обычно 88 и большое время заголовка 140
- стандартное название-44pt (88pt со строкой состояния)
- большой заголовок - 140pt
- нижний бар - 34pt
пейзаж
- стандартное название-32pt
- нижняя панель-21pt
Nav bar-44pt, как обычно (когда нет больших заголовков), а строка состояния увеличилась с 20pt до 44pt. Вот что вы можете ввести в отладчик, чтобы проверить его:
вы можете программно получить высоту навигационной панели, используя safeAreaInsets
на view
в контроллере содержащегося вида:
let navBarHeight = view.safeAreaInsets.top
это будет учитывать, является ли это большая панель навигации заголовка или нет, и есть ли к ней прикреплена панель поиска.
посмотреть safeAreaInsets
документация для получения дополнительной информации.
вы можете использовать панель навигации .свойство рамки, чтобы выяснить общую высоту верхней области бара:
ObjC:
CGRect navbarFrame = self.navigationController.navigationBar.frame;
float topWidth = navbarFrame.size.width;
float topHeight = navbarFrame.size.height + navbarFrame.origin.y;
Я полагаю, что это немного чит, но добавление высоты navbar с его y-началом, похоже, дает правильную общую высоту независимо от устройства.
вы можете просто получить его следующим образом (Swift 3):
let barHeight = navigationController?.navigationBar.frame.maxY
чтобы получить правильное значение, убедитесь, что вы называете его после установки prefersLargeTitles
navigationController?.navigationBar.prefersLargeTitles = false
в Apple Docs нет спецификации
по данным Джефф Хакворт его 88
навигация название типа :
- стандартный заголовок
- большой заголовок
увеличение панели навигации в iOS 11
navigationController?.navigationBar.prefersLargeTitles = true