2013-09-10 3 views
11

Я тестирую свое приложение с iOS7, и у меня есть проблема со строкой состояния. В основном в строке состояния появляются через панель навигации, как на картинке ниже:iOS7 Строка состояния над панелью навигации

iOS7 Status Bar Issue

Я пытаюсь вызвать в моей viewDidLoad

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.automaticallyAdjustsScrollViewInsets = YES; 

без успеха.

Я также добавил в файл info.plist файл UIViewControllerBasedStatusBarAppearance без везения.

Основная проблема заключается в том, что приложение должно быть совместимо с iOS6 и iOS7, а в настоящее время на iOS7 вид сдвинут 20px сверху.

+2

@Scott : http://meta.stackexchange.com/questions/94465/should-moderators-enforce-ndas-for-software-vendors –

+0

Возможно, вы используете прозрачную навигациюBar – Camo

+0

У меня тоже есть этот вопрос http://stackoverflow.com/questions/18737186 ​​/ position-of-navigation-bar-for-model-view-ios7, который прочитав ответ ниже, Аарон дал мне идею, и это сработало. Опубликуйте свой ответ ниже – DogCoffee

ответ

9

edgesForExtendedLayout и automaticallyAdjustsScrollViewInsets - это всего лишь стандарты того, как контроллеры родительских представлений выставляют/управляют представлением. Похоже, вы используете UINavigationBar, но не UINavigationController, что означает, что эти свойства ничего не сделают, если вы их не закодируете.

Вы можете переключиться на использование UINavigationController, или вы можете программно изменить высоту вашего UINavigationBar от 44 до 64 лет на прошивке 7.

5

Добавить выход к UINavigationBar.

float currentVersion = 7.0; 

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= currentVersion) { 
    // iOS 7 
    self.navBar.frame = CGRectMake(self.navBar.frame.origin.x, self.navBar.frame.origin.y, self.navBar.frame.size.width, 64); 
} 

Вы также можете скрыть строку состояния, это может быть лучшим подходом к этим представлениям, чтобы получить больше экранной недвижимости.

Я ответил, что здесь:

Position of navigation bar for modal view - iOS7

+0

После некоторого тестирования я решил скрыть строку состояния в iOS7 – PizzaRings

+1

То же, что я и сделал. Удостоверьтесь, что вы делаете это для iOS7, View на панели управления на основе контроллера = NO, в plist. – DogCoffee

0

Это самая большая проблема, которая поставляется с прошивкой 7 и есть много решений, чтобы решить эту проблему, но, на мой взгляд, лучший способ решить это, чтобы удалить навигационной панели и встройте контроллер вида в контроллер навигации, перейдя в Редактор> Вставить в контроллер навигации.

0

Привет У меня была аналогичная проблема, обратитесь к этой thread где я разместил код в код AppleDelegate, действительно помог мне

+0

Спасибо за замечание, я очень ценю вашу помощь! – PizzaRings

0

добавить ограничения сверху пространство для верхней направляющей разметки

enter image description here

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