4

Как и в названии, у меня есть панель навигации, которая скрывает мою строку состояния. Я запускаю свое приложение на симуляторе и недавно начал запускать его на устройстве iPhone 4s iOS7, и заметил, что строка состояния скрыта или скрыта, только вы можете видеть, это зеленый срок службы батареи. Причина, по которой я думаю, что она скрыта, заключается в том, что у меня есть панель поиска в одном из моих контроллеров представления, и когда я использую строку поиска, вы можете видеть строку состояния, поставщика сотовой сети, время и т. Д.Панель управления скрытием панели навигации

Вещи, которые я сделал, чтобы убедиться, что я не сделал это случайно:

Checked the Target-> Deployment Info ->Status Bar Style. It is in Default. 

Checked each xib file to see if the status bar is set to none. All of them are at Default. 

Searched the keyword "hidden" in all my .m files. 

У кого-нибудь есть предложения? Я просматривал здесь и вижу только сообщения о людях, которые действительно хотят скрыть это, не исправляя его. Если у кого-то было что-то подобное, я могу что-то попробовать.

Ответ:

I was using a navigation bar image and the sizes were different. 
I was using iOS6 bar size, 32x32, but now I am using 88x64 and 
that fixed it for iOS7. How do I check if phone is iOS6 or iOS7? 

ответ

2

Строка состояния не скрыта. На iOS 7 строка состояния всегда видна и перекрывает ваше приложение так, как это было на iOS 6 и ранее. Это новое «нормальное» поведение. Строка состояния больше не имеет цвета фона. Это либо черный текст на прозрачном фоне (UIStatusBarStyleDefault), либо светлый текст на прозрачном фоне (UIStatusBarStyleLightContent).

Если вы измените внешний вид строки состояния на Light Content, вы сможете увидеть свою строку состояния на темном фоне.

Внешний вид панели управления управляется одним из двух взаимоисключающих базовых путей: вы можете либо установить их программно традиционным способом, либо UIKit обновит внешний вид для вас на основе некоторых новых свойств UIViewController. Последний вариант включен по умолчанию. Проверьте значение вашего приложения plist для «Внешний вид строки состояния на ViewController», чтобы узнать, какой из них вы используете. Если вы установите это значение на YES, каждый контроллер верхнего уровня в вашем приложении (отличном от стандартного контроллера отображения контейнера UIKit) должен переопределить preferredStatusBarStyle, возвращая либо стиль по умолчанию, либо стиль света. Если вы измените значение plist на NO, вы можете управлять появлением строки состояния, используя знакомые методы UIApplication.

+0

Спасибо за эту информацию, я этого не знал. К сожалению, это не сработало. У моего plist не было 'ViewController-Based Status Bar Appearance', но у него был' стиль строки состояния', который был установлен в 'Gray Style (Default)'. Я попытался изменить его на другие 2 варианта, но не работал. И другого выбора нет, поэтому я не могу отказаться. Любые другие предложения? Заранее спасибо! – Chris

0

Я знаю его knida слишком поздно, но этот подход решить мою проблему с панелью состояния:

То, что я был поставлен

self.view.backgroundcolor=[UIcolor WhiteColor]; 

, а затем создал подвид в главном окне с тем же ширину и высоту, как self.view, а затем модифицировали ее раму соответственно, например:

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
    if(self.customView.frame.origin.y == 0) { 
     CGRect viewBounds = [self.customView bounds]; 
     viewBounds.origin.y = 20; 
     viewBounds.size.height = viewBounds.size.height - 20; 
     self.customView.frame = viewBounds; 
    } 

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