Ios UIAlertView类似于UIWindow
我想做一些自定义警报视图-基本上功能相同,但外观不同。据我所知,UIAlertView显示在一个单独的窗口中。我可以创建一个窗口,在其中放入一个视图并显示它,但是如果没有对UIWindow对象的强引用,它会在函数返回后立即消失。另一方面,可能没有对UIAlertView的强引用,但它在显示后不会消失。如何实现警报窗口的相同行为Ios UIAlertView类似于UIWindow,ios,uialertview,uiwindow,Ios,Uialertview,Uiwindow,我想做一些自定义警报视图-基本上功能相同,但外观不同。据我所知,UIAlertView显示在一个单独的窗口中。我可以创建一个窗口,在其中放入一个视图并显示它,但是如果没有对UIWindow对象的强引用,它会在函数返回后立即消失。另一方面,可能没有对UIAlertView的强引用,但它在显示后不会消失。如何实现警报窗口的相同行为 // create a new window UIWindow *alertWindow = [[UIWindow alloc] initWithFrame:[UIScr
// create a new window
UIWindow *alertWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
alertWindow.windowLevel = UIWindowLevelAlert;
UIToolbar *background = [[UIToolbar alloc] initWithFrame:alertWindow.frame];
background.barStyle = UIBarStyleBlack;
background.translucent = YES;
[alertWindow addSubview:background];
[alertWindow addSubview:contentView];
[alertWindow makeKeyAndVisible];
你真的能看到这个窗口吗?因为我无法在屏幕上看到它,除非我同时调用
[self.view addSubview:alertWindow]当前ViewController上的代码>
第二件事:
如果您需要与UIAlertView
相同的功能,只需将其子类化即可
第三件事:
如果您需要更多可定制的UIAlertView
,我会选择定制UIView
并对其进行定制。您可以使用代理或NSNotificationCenter(如果愿意)在任何UIViewController上显示此警报
我可以创建一个窗口,在其中放入一个视图并显示它,但是如果没有对UIWindow对象的强引用,它会在函数返回后立即消失
你或多或少地回答了自己的问题。确保有对窗口的强烈引用
UIAlertView
的内部结构相当复杂,但是有一个单独的组件,它同时保存警报和它将在其中显示的窗口。创建的每个警报都会调用该单例,因此您也可以执行类似的操作