如何在显示警报时模糊背景?

时间:2015-06-19 02:34:37

标签: xcode alert blur

我想在屏幕上显示警报时对现有视图应用模糊效果,我目前通过在视图顶部显示imageView(BlurEffect:blurBackGroundSignUp),最初隐藏它来执行此操作并在调用以下代码时显示它:

[self BlurEffect:blurBackGroundSignUp];

当我将代码放入BlurEffect方法时,ViewDidLoad方法可以正常工作,但是当我检查警报或将代码添加到我显示警报的位置时拒绝表明。我猜有些东西需要被覆盖,我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

  

要获得解决方案,请按照下面提到的简单步骤进行操作:

对于模糊效果,只需将背景设置为whitecolorimage.php 60%透明。

同时将'main'文本设置为透明并设置初始'0px'模糊:

  颜色:透明; text-shadow:0px 0px 0px#000;

在Flex应用程序中

在flex'<Application />'标签中,主要有四个与弹出窗口的模态属性相关的属性。

modalTransparency
modalTransparencyBlur
modalTransparencyColor

将这些属性设置为:

 modalTransparency="0.5"
 modalTransparencyBlur="3"
 modalTransparencyColor="0xDDDDDD" 

答案 1 :(得分:0)

简而言之,UIAlertView中没有任何内容可以阻止带有模糊图像的图像视图出现。所以它可能很简单。

您必须进行一些诊断以确定问题的根源。问题可能是快照本身。因此,在创建快照的位置暂停执行,将鼠标悬停在保存模糊快照的UIImage变量上,单击&#34;快速查看&#34;按钮(看起来像眼睛; enter image description here),并确认模糊图像看起来正确:

enter image description here

接下来要检查以确保图像已添加到图像视图中,并且图像视图已添加到视图层次结构中。您可以继续执行应用程序,然后点击查看调试按钮enter image description here

enter image description here

或者你可以运行应用程序,点击&#34;暂停&#34;按钮,并在(lldb)提示符下输入po [[UIWindow keyWindow] recursiveDescription]。 (您可能希望暂时暂停警报视图的show,以便我们可以专注于视图层次结构中的其他视图)。无论如何,你应该看到类似的东西:

(lldb) po [[UIWindow keyWindow] recursiveDescription]
<UIWindow: 0x7fb45e3247a0; frame = (0 0; 375 667); gestureRecognizers = <NSArray: 0x7fb45e3324c0>; layer = <UIWindowLayer: 0x7fb45e337db0>>
   | <UIView: 0x7fb45bc36520; frame = (0 0; 375 667); autoresize = W+H; layer = <CALayer: 0x7fb45bc362c0>>
   |    | <UIButton: 0x7fb45bc2f0c0; frame = (313 28; 46 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7fb45bc2f660>>
   |    |    | <UIButtonLabel: 0x7fb45bc44cb0; frame = (0 6; 46 18); text = 'Button'; opaque = NO; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fb45bc44c50>>
   |    | <UILabel: 0x7fb45bc36870; frame = (16 66; 343 581); text = 'Lorem ipsum dolor sit ame...'; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fb45bc36d40>>
   |    | <_UILayoutGuide: 0x7fb45bc38b30; frame = (0 0; 0 20); hidden = YES; layer = <CALayer: 0x7fb45bc32a40>>
   |    | <_UILayoutGuide: 0x7fb45bc39780; frame = (0 667; 0 0); hidden = YES; layer = <CALayer: 0x7fb45bc398b0>>
   |    | <UIImageView: 0x7fb45bf760e0; frame = (0 0; 375 667); opaque = NO; userInteractionEnabled = NO; tag = 42; layer = <CALayer: 0x7fb45bf77db0>>

注意,您在我的第一个屏幕快照中注意到,我暂时向tag添加了blurredImageView个号码。我这样做的原因是它可以更容易地在上面显示的视图层次结构中找到有问题的视图(它是最后一行,包括tag = 42的那一行)。无论如何,确认包含模糊图像的图像视图在视图层次结构中,具有合理的frame并且不隐藏在任何后面。