iOS 6 и 7 UINavigationBar Spacing

Мы приступаем к серьезной перезаписке нашего приложения для поддержки пользовательских интерфейсов iOS 6 и iOS 7. Заставка в нашем приложении оснащена модульным контроллером представлений с появлением UINavigationBar и позволяет пользователю войти в систему с помощью Google (OAuth). Я использую Xcode 5 для создания обеих версий (с помощью вкладки «File Inspector»), и я использую xibs в пользу Storyboards для удобства обслуживания – в версии 1 использовались раскадровки, и через некоторое время было сложно ориентироваться по мере увеличения нашего приложения по размеру и объему.

В Xcode 5:

iOS 6: iOS 6 Interface Builder xib

IOS 7: iOS 7 Interface Builder xib

и, когда я запускаю приложение, версия iOS 6 выглядит корректно (поскольку строка состояния все еще отличается и правильное расстояние между часами и навигационной панелью):

iOS 6 работает

Но обратите внимание, что в версии iOS 7, потому что больше нет отдельной «строки состояния», текст заголовка UINavigatonBar слишком близок к часам:

iOS 7 работает

Как все это согласовали до сих пор? Я заметил, что приложения, такие как Facebook и Twitter, уже обновлены и используют панель навигации «расширенный» (не уверен, что это правильная терминология), которая компенсирует отсутствие различия между представлением и строкой состояния:

Улучшенная панель навигации Twitter

Как они достигли этого? Я не вижу ничего конкретного, рассматривая это в руководящих принципах перехода iOS 7 для iOS от Apple, поэтому любая помощь будет оценена, и я уверен, что многие другие тоже будут сталкиваться с этой проблемой, поэтому, надеюсь, это тоже поможет. Благодаря!

2 Solutions collect form web for “iOS 6 и 7 UINavigationBar Spacing”

Быстрый ответ:

Используйте UINavigationController! Это устранит вашу проблему. Если вы не можете, используйте автозапуск!

 UINavigationBar *aNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)]; aNavigationBar.barStyle = UIBarStyleBlackOpaque; self.flipsideNavigationBar = aNavigationBar; [aNavigationBar release]; UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(toggleView)]; UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Taschenlampe"]; navigationItem.rightBarButtonItem = buttonItem; [flipsideNavigationBar pushNavigationItem:navigationItem animated:NO]; [navigationItem release]; [buttonItem release]; - (IBAction) toggleView { } 
  • Загрузка UITableViewCell из xib (этот класс не является ключевым значением, совместимым с кодом для ключа)
  • Почему мой XIB изменяется каждый раз, когда я открываю его в IB?
  • UIViewControllerHierarchyInconsistency при попытке представить контроллер модального представления
  • Раскадровка против Xibs - iOS9
  • Xcode Storyboard и xib соединение
  • Как установить шестнадцатеричный цветовой код в xib в iOS
  • Локализация экрана запуска XIB не работает должным образом
  • Сложность Локализация файлов xib
  • Пользовательский UIView загружен из Xib
  • Пользовательский подкласс UIView с XIB в Swift
  • Переход от XIB-файлов к раскадровке
  • iOS - загрузка контроллера навигации по коду
  • Interesting Posts
    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.