UIV在UIAlertView之上

时间:2014-06-17 11:31:18

标签: ios uiview z-index uialertview

在我的应用中,使用锁定屏幕。有时会显示UIAlertView,现在当用户将应用程序发送到后台并再次将其显示在前面时,UIAlertview会显示在锁定屏幕上方。是否有可能在所有内容之上添加UIViewController视图,即在UIAlertView之上?

2 个答案:

答案 0 :(得分:5)

你应该喜欢这个

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隐藏它:是。

答案 1 :(得分:1)

有两种UIWindowLevel,最大的一种将显示在另一个窗口的上方。

所以我建议您使用UIWindow创建锁定屏幕,让它的窗口级别大于UIWindowLevelAlert

基本上,他们的价值观是:

 UIWindowLevelNormal = 0.000000;
 UIWindowLevel UIWindowLevelAlert = 2000.000000;
 UIWindowLevel UIWindowLevelStatusBar = 1000.000000;

这就是警报视图显示在另一个窗口上方的原因。试一试。