Ios 如何添加UIAlertView中的暗显背景

Ios 如何添加UIAlertView中的暗显背景,ios,ios5,uialertview,Ios,Ios5,Uialertview,我正在制作一个类似于UIAlertView的自定义对话框,我想知道是否有人知道我如何模拟下图中变暗的背景 首先,我建议您尽量避免使用自定义模式对话框。您通常可以在应用程序的实际视图流中提供上下文反馈 如果您的应用程序仅针对iOS 5,UIAlertView将提供三种新样式以允许文本输入、安全文本输入或用户名和密码组合 如果您仍然需要自定义模式警报,并且希望与iOS外观保持一致,并保持分辨率独立性,我建议您避免使用静态图形资源。取而代之的是,采用(有点粗俗)的方法,将UIAlertView子类化,

我正在制作一个类似于UIAlertView的自定义对话框,我想知道是否有人知道我如何模拟下图中变暗的背景


首先,我建议您尽量避免使用自定义模式对话框。您通常可以在应用程序的实际视图流中提供上下文反馈

如果您的应用程序仅针对iOS 5,UIAlertView将提供三种新样式以允许文本输入、安全文本输入或用户名和密码组合


如果您仍然需要自定义模式警报,并且希望与iOS外观保持一致,并保持分辨率独立性,我建议您避免使用静态图形资源。取而代之的是,采用(有点粗俗)的方法,将UIAlertView子类化,并向其添加您自己的控件。你可以找到这样做的例子,而且。

我同意你应该非常小心地找到真正的理由,但如果你真的需要,很容易:

使用alpha创建与目标设备屏幕大小相同的PNG图像。t将图像填充为黑色,并添加一个径向不透明度渐变,使其在中心相对透明,而朝向屏幕边缘则更为透明。这种效果称为渐晕。也许在您首选的图像编辑器上甚至有一个渐晕滤镜,您可以在完全透明的图像上使用它

这种图像方法还有一个好处,即允许您使用完全不同的背景淡出效果

创建带有渐晕图图像和透明背景的
UIImageView
。将视图添加到应用程序窗口中,位于所有其他视图的顶部,但位于alertView的下方:

UIImageView *vignetteView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"vignette.png"]];
vignetteView.backgroundColor = [UIColor clearColor];
vignetteView.userInteractionEnabled = YES; //this means users won't be able to touch the UI elements below
[self.view.window insertSubview: vignetteView belowSubview: myAlertView];

介意我问一下自定义对话框的用途吗?获得UIAlertView背后效果的最佳方法是使用UIAlertView。它是一个带有自定义内容的对话框