Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 显示警报时如何模糊背景?_Xcode_Alert_Blur - Fatal编程技术网

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

Xcode 显示警报时如何模糊背景?,xcode,alert,blur,Xcode,Alert,Blur,我想在屏幕上显示警报时对现有视图应用模糊效果,目前我正在通过在视图顶部显示imageView(BlurEffect:blurBackGroundSignUp)来实现这一点,最初将其隐藏并在调用以下代码时显示: [self BlurEffect:blurBackGroundSignUp]; BlurEffect方法的工作原理是,当我将代码放入viewdiload方法中时,会得到模糊的视图,但当我检查警报或将代码添加到显示警报的位置时,它拒绝显示。我猜有一些东西需要被覆盖,我不知道如何做到这一点

我想在屏幕上显示警报时对现有视图应用模糊效果,目前我正在通过在视图顶部显示imageView(
BlurEffect:blurBackGroundSignUp
)来实现这一点,最初将其隐藏并在调用以下代码时显示:

[self BlurEffect:blurBackGroundSignUp];
BlurEffect
方法的工作原理是,当我将代码放入
viewdiload
方法中时,会得到模糊的视图,但当我检查警报或将代码添加到显示警报的位置时,它拒绝显示。我猜有一些东西需要被覆盖,我不知道如何做到这一点

要获得此问题的解决方案,请执行以下简单步骤:

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

同时将“主”文本设置为透明,并设置初始“0px”模糊:

颜色:透明;文本阴影:0px 0px 0px#000

在Flex应用程序中

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

modalTransparency
modalTransparencyBlur
modalTransparencyColor
将这些属性设置为like:

 modalTransparency="0.5"
 modalTransparencyBlur="3"
 modalTransparencyColor="0xDDDDDD" 
要获得此问题的解决方案,请执行以下简单步骤:

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

同时将“主”文本设置为透明,并设置初始“0px”模糊:

颜色:透明;文本阴影:0px 0px 0px#000

在Flex应用程序中

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

modalTransparency
modalTransparencyBlur
modalTransparencyColor
将这些属性设置为like:

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

简而言之,
UIAlertView
中没有任何东西可以阻止显示模糊图像的图像视图。所以很可能是一些简单的事情

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

下一步是检查以确保图像已添加到图像视图,并且图像视图已添加到视图层次。您可以继续执行应用程序,然后点击查看调试按钮:

或者,您可以运行应用程序,点击“暂停”按钮,然后在
(lldb)
提示符下输入
po[[UIWindow keyWindow]recursiveDescription]
。(您可能需要暂时暂停警报视图的
显示
,以便我们可以关注视图层次结构中的其他视图)。无论如何,您应该看到如下内容:

(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>>
(lldb)po[[UIWindow keyWindow]递归描述]
| 
|    | 
|    |    | 
|    | 
|    | 
|    | 
|    | 

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

简而言之,
UIAlertView
中没有任何内容会阻止显示具有模糊图像的图像视图。所以很可能是一些简单的事情

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

下一步是检查以确保图像已添加到图像视图,并且图像视图已添加到视图层次。您可以继续执行应用程序,然后点击查看调试按钮:

或者,您可以运行应用程序,点击“暂停”按钮,然后在
(lldb)
提示符下输入
po[[UIWindow keyWindow]recursiveDescription]
。(您可能需要暂时暂停警报视图的
显示
,以便我们可以关注视图层次结构中的其他视图)。无论如何,您应该看到如下内容:

(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>>
(lldb)po[[UIWindow keyWindow]递归描述]
| 
|    | 
|    |    | 
|    | 
|    | 
|    | 
|    | 

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

如何显示您的AlertView?如果(错误){UIAlertView*AlertView=[[UIAlertView alloc]initWithTitle:[error userInfo][@“error”]消息:nil delegate:self-cancelButtonTitle:nil-otherButtonTitles:@“OK”,nil];[alertView show];return;}那么在
if
语句中,您可以直接显示您的BlurView了吗?顺便说一句,你把它添加到视图了吗?这是我最初尝试的,但是当我在if语句中添加代码时,它不起作用。我想支持iOS 7及以上版本。如何显示您的AlertView?如果(错误){UIAlertView*AlertView=[[UIAlertView alloc]initWithTitle:[error userInfo][@“error”]消息:无委托:自取消按钮:无其他按钮:@“OK”,无];[AlertView show];返回;}所以在那
if
statem