UIView выше UIAlertView
В моем приложении используется экран блокировки. Иногда UIAlertView
теперь, когда пользователь отправляет приложение в фоновый режим и снова выводит его на экран, UIAlertview
отображается над экраном блокировки. Есть ли возможность добавить UIViewController
выше всего, то есть выше UIAlertView
?
2 ответа
Решение
Вы должны иметь как это
UIWindow *mySpecialWindowForLockScreen = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
//"Hey iOS Please put this window above all alert view"
mySpecialWindowForLockScreen.windowLevel = UIWindowLevelAlert+100;
UIViewController *lockScreenViewController = [[UIViewController alloc]init];//Lock Screen
lockScreenViewController.view.frame = mySpecialWindowForLockScreen.bounds;
mySpecialWindowForLockScreen.rootViewController = lockScreenViewController;
// In lockScreenViewController view you can add lock screen images and other UI stuff
mySpecialWindowForLockScreen.rootViewController.view.backgroundColor = [UIColor greenColor];
[mySpecialWindowForLockScreen makeKeyAndVisible];
Всякий раз, когда вы хотите скрыть окно LockScreen, просто скройте его с помощью setHidden:YES.
Существует три вида UIWindowLevel, самый большой из которых будет показан над другим окном.
Поэтому я предлагаю вам использовать UIWindow для создания экрана блокировки и позволить его уровню окна больше, чем UIWindowLevelAlert
,
В основном их значения:
UIWindowLevelNormal = 0.000000;
UIWindowLevel UIWindowLevelAlert = 2000.000000;
UIWindowLevel UIWindowLevelStatusBar = 1000.000000;
вот почему окно с предупреждением будет отображаться над другим окном. Попробуйте.