Просмотр изображения во весь экран при скрытии строки состояния

#objective-c #ios #uinavigationcontroller #uiscrollview #uistatusbar

#objective-c #iOS #uinavigationcontroller #uiscrollview #uistatusbar

Вопрос:

Я создаю полноэкранный просмотр изображения с возможностью масштабирования и прокрутки, аналогичный тому, что есть в Twitter для iPhone. У меня это почти то же самое, за исключением того, что я не могу понять, как использовать недвижимость под панелью статистики.

Я начинаю с UINavigationController и нажимаю на просмотр изображения. Мой вид изображения — это UIView, который содержит UIScrollView с рамкой (0, -44, 320, 480), чтобы поместить его под панель навигации, и UIImageView поверх нее с рамкой границ вида прокрутки.

Я скрываю панель навигации и строку состояния, используя:

 [self.navigationController.navigationBar setAlpha:0.0f];
[[UIApplication sharedApplication] setStatusBarHidden:YES];
  

Они скрываются правильно, но вверху у меня остается 20 пикселей черного цвета. Я попытался установить для y-начала координат рамки прокрутки значение -66, но это не помогло.

Есть идеи?

Комментарии:

1. Просто предложение, но вы пробовали установить строку состояния на черный прозрачный?

2. Попытался установить для него значение transparent, но ничего не изменилось.

Ответ №1:

если вы выберете вид в построителе интерфейсов и перейдете в инспектор атрибутов, убедитесь, что для этих полос установлено значение none.

Комментарии:

1. это должно быть легко исправимо в IB. но этот комментарий не помог alavoil, поэтому я не уверен, если вы хотите опубликовать свой проект где-нибудь, я посмотрю, но кроме моего оригинального комментария, что еще можно предложить, не видя проект (или, по крайней мере, упрощенную версию (чтобы скрыть код, который вы не хотите публиковать))

Ответ №2:

Попробуйте этот метод, чтобы скрыть строку состояния

 -(BOOL)prefersStatusBarHidden{
return YES;
}
  

Также в методе viewWillAppear() установите панель навигации скрытой :

 -(void) viewWillAppear:(BOOL)animated{
    [self.navigationController setNavigationBarHidden:YES];
}