Ios UIAlertView上方的UIView
在我的应用程序中,使用了锁定屏幕。有时会显示Ios UIAlertView上方的UIView,ios,uiview,z-index,uialertview,Ios,Uiview,Z Index,Uialertview,在我的应用程序中,使用了锁定屏幕。有时会显示UIAlertView,现在当用户将应用程序发送到后台并再次将其带到前面时,UIAlertView会显示在锁屏上方。是否可以将UIViewController的视图添加到所有视图之上,即在UIAlertView之上?有三种UIWindowLevel,最大的一种将显示在另一个窗口之上 因此,我建议您使用UIWindow创建锁屏,并使其窗口级别大于UIWindowLevelAlert 基本上,他们的价值观是: UIWindowLevelNormal =
UIAlertView
,现在当用户将应用程序发送到后台并再次将其带到前面时,UIAlertView
会显示在锁屏上方。是否可以将UIViewController
的视图添加到所有视图之上,即在UIAlertView
之上?有三种UIWindowLevel,最大的一种将显示在另一个窗口之上
因此,我建议您使用UIWindow创建锁屏,并使其窗口级别大于UIWindowLevelAlert
基本上,他们的价值观是:
UIWindowLevelNormal = 0.000000;
UIWindowLevel UIWindowLevelAlert = 2000.000000;
UIWindowLevel UIWindowLevelStatusBar = 1000.000000;
这就是为什么警报视图会显示在另一个窗口上方。试试看。您应该这样做
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];
每当您想隐藏锁屏窗口时,只需通过设置Hidden:YES来隐藏它。Smiler对您需要做的事情有一定的问题,所以我希望它能有所帮助。避开此问题的一种方法可能是维护您的
UIAlertView
的引用,并在应用程序进入后台时将其隐藏。当应用程序再次进入前台时,由您决定如何处理alertView引用。问得好。但我认为,UIAlertView
应该是最重要的——这是它的职责——提醒;问题是ARC立即清理了mySpecialWindowForLockScreen
,因此我必须为它创建一个属性。