Изменение размера каждого представления для повторного подгонки после переключения setStatusBarHidden: YES для setStatusBarHidden: NO - PullRequest
2 голосов
/ 30 марта 2012

У меня есть UIView, который я хочу добавить в keyWindow, чтобы он охватывал все (включая StatusBar).Когда я добавляю представление, я удаляю строку состояния, используя следующий фрагмент кода:

[[UIApplication sharedApplication].keyWindow addSubview:aView];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
aView.frame = [[UIApplication sharedApplication].keyWindow bounds];

Все выглядит так, как ожидалось.Если я затем удалю вид и снова добавлю строку состояния, все в порядке.Тем не менее, все идет не так, когда я поворачиваю свое устройство, а затем удаляю вид.Пользовательский интерфейс теперь частично покрыт строкой состояния (в данном случае - панелью навигации).Вращение устройства немедленно изменяет размер всего, чтобы пользовательский интерфейс снова выглядел нормально.

Как я могу убедиться, что пользовательский интерфейс (любой пользовательский интерфейс!) Знает, что StatusBar снова скрывается, так что он автоматически настраивается, как только UIView удаляетсяfrom keyWindow.?

Решение должно работать независимо от типа пользовательского интерфейса в приложении.В данном конкретном примере я использую панель вкладок и контроллер навигации, но это не всегда так.

1 Ответ

2 голосов
/ 31 октября 2012

Я только что решил эту проблему.

В моей ситуации это вызвано порядком, в котором вы вызываете метод. И иногда, возможно, анимация также как-то связана с этим.

например, в моей ситуации:

// вызов текущего контроллера представления после вызова setStatusBarHidden

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[modalPresentedViewController presentModalViewController:self animated:YES];

// вызовите setStatusBarHidden перед вызовом метода dismiss.

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[modalPresentedViewController presentModalViewController:self animated:YES];

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...