如何显示基于UIWindow的灰色背景,如UIAlertView?

时间:2012-08-08 23:13:56

标签: objective-c ios background uialertview uiwindow

这是我的问题:我试图显示一个带有显示径向渐变的子视图的UIWindow。我想把窗口放在UIWindowLevelAlert上。我之前已经想到这一切并且它正在工作,但现在我正在尝试重现它浪费时间...... 这是我得到的代码(背景不是渐变,因为我想保持简单,然后添加一个真正像UIAlertView的视图):

- (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;

}

1 个答案:

答案 0 :(得分:4)

当取消分配UIWindow时,它将从屏幕上删除。由于您没有保留对UIWindow的引用,我相信它会被释放并释放,因此它不会显示。

解决方案是在某个地方保留对窗口的引用。你可以把它存放在你工作的班级里吗?