这是我的问题:我试图显示一个带有 subview 的 UIWindow,该 subview 显示径向渐变。我想把窗口放在 UIWindowLevelAlert 上。我之前已经弄清楚了这一切并且它正在工作,但现在我试图重现它浪费时间......
这是我得到的代码(背景不是渐变,因为我想保持简单,然后添加一个真正类似于 UIAlertView 的 View ):
- (IBAction)buttonPressed {
UIWindow *backgroundWindow = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
backgroundWindow.windowLevel = UIWindowLevelAlert;
UIView *backgroundView = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
backgroundView.backgroundColor = [UIColor blackColor];
backgroundView.alpha = 0.5;
[backgroundWindow makeKeyAndVisible];
[backgroundWindow addSubview:backgroundView];
backgroundWindow.hidden = NO;
}
最佳答案
当 UIWindow 被释放时,它将从屏幕上移除。由于您没有保留对 UIWindow 的引用,我相信它会被释放并释放,因此它不会显示。
解决方案是在某处保留对窗口的引用。您可以将其作为属性存储在您正在工作的类(class)中吗?
关于objective-c - 如何显示基于 UIWindow 的暗色背景,如 UIAlertView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874570/