我正在制作一个类似于UIAlertView的自定义对话框,并且想知道是否有人有任何想法如何模仿调光背景,如下图所示。
答案 0 :(得分:0)
首先,我建议您尽量避免使用自定义模式对话框。您通常可以在应用程序的实际视图流中提供上下文反馈。
如果您的应用仅针对iOS 5,则UIAlertView提供三种新样式,以允许文本输入,安全文本输入或用户名和密码组合。
如果您仍然需要自定义模式警报,并且您希望与iOS外观保持一致并保持分辨率独立性,我建议您避免使用静态图形资源。相反,采用(有点hackish)子类化UIAlertView的方法,并添加自己的控件。您可以找到执行此操作的示例here和here。
答案 1 :(得分:0)
我同意你应该非常谨慎地为redoing something that is already there提供真正的理由,但是如果你真的需要它,那很容易:
使用alpha创建与目标设备屏幕尺寸相同的PNG图像。将图像填充为黑色,并添加径向不透明度渐变,使得在中心,它相对透明,而朝向屏幕边缘,它会更加光滑。这种效果称为渐晕。也许在您首选的图像编辑器上有一个渐晕过滤器,您可以在完全透明的图像上使用它。
此图像方法还具有允许您使用完全不同的淡化背景效果的好处。
使用晕影图像和透明背景创建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];