Я хотел переключить StatusBar в моем универсальном приложении iOS v5.
Но обнаружил, что, как кажется, другие имеют, что UIViews (в моем случае subViews, добавленные к основному представлению) только возвращают 20px, оставленные скрытымstatusBar, если вы затем поворачиваете устройство (я использую симулятор)
И мои просмотры выполняются программно.
Я попробовал некоторые из предложений, найденных путем поиска в Google, но ни одно из них не помогло.т.е. изменение авторазмера / маски, wantFullScreenLayout, setNeedsLayout, в IB «использовать полный экран».
Я наконец-то понял, что я устанавливаю свои виды высота кадра на 0 иэто высота границ до [[UIScreen mainScreen] applicationFrame] size.height
То, что я придумал: настройка представлений высота кадра до -20 и высота границ до [[UIScreen mainScreen] applicationFrame] size.height + 20
В viewDidLoad.
CGRect theDeviceRect= [[UIScreen mainScreen] applicationFrame];
newMap.frame = CGRectMake(0, -20, theDeviceRect.size.width, theDeviceRect.size.height+20);
У меня также есть это в willAnimateRotationToInterfaceOrientation: делегат.
Теперь, когда я переключаю строку состояния с помощью:
- (void) toggleStatusBarAction:(id)sender{
BOOL istathidden= [[UIApplication sharedApplication] isStatusBarHidden];
[[UIApplication sharedApplication] setStatusBarHidden:!istathidden withAnimation:UIStatusBarAnimationFade];
}
Всеработает как положено.Но я хотел посмотреть, является ли мое решение хорошим или плохим способом решения этой проблемы и что-то мне не хватает?:
Большое спасибо заранее.MH