显示警报时如何模糊背景?
How to blur the background when an alert is showing?
我想在屏幕上显示警报时对现有视图应用模糊效果,我目前通过在我的视图顶部显示一个 imageView (BlurEffect:blurBackGroundSignUp
),隐藏它最初并在调用以下代码时显示它:
[self BlurEffect:blurBackGroundSignUp];
BlurEffect
方法有效,因为当我将代码放入 ViewDidLoad
方法时,我的视图变得模糊,但是当我检查警报或将代码添加到我显示的位置时警告它拒绝显示。我猜有些东西需要覆盖,但我不知道该怎么做。
To get the solution for this follow the simple step mentioned below :
对于模糊效果,只需将 whitecolorimage.php 60% 透明设置为背景。
同时将 'main' 文本设置为透明并设置初始“0px”模糊:
color: transparent; text-shadow:0px 0px 0px #000;
在 Flex 应用程序中
在flex中'<Application />
'标签主要有四个与弹窗模态属性相关的属性
modalTransparency
modalTransparencyBlur
modalTransparencyColor
设置这些属性喜欢:
modalTransparency="0.5"
modalTransparencyBlur="3"
modalTransparencyColor="0xDDDDDD"
简而言之,UIAlertView
中没有任何内容可以阻止显示模糊图像的图像视图。所以它可能很简单。
您必须进行一些诊断以确定问题的根源。问题可能出在快照本身。所以在创建快照的地方暂停执行,将鼠标悬停在保存模糊快照的 UIImage
变量上,单击 "Quick Look" 按钮(看起来像一只眼睛;),然后确认模糊图像看起来正确:
接下来要检查以确保图像已添加到图像视图中,并且图像视图已添加到视图层次结构中。您可以继续执行该应用程序,然后点击查看调试按钮 :
或者您可以 运行 应用程序,点击 "pause" 按钮,然后在 (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>>
请注意,您会在我的第一个屏幕截图中注意到,我临时在 blurredImageView
中添加了一个 tag
号码。我这样做的原因是它可以更容易地在上面显示的视图层次结构中找到有问题的视图(它是最后一行,包含 tag = 42
的那一行)。无论如何,确认包含模糊图像的图像视图在视图层次结构中,具有合理的 frame
并且没有隐藏在任何东西后面。
我想在屏幕上显示警报时对现有视图应用模糊效果,我目前通过在我的视图顶部显示一个 imageView (BlurEffect:blurBackGroundSignUp
),隐藏它最初并在调用以下代码时显示它:
[self BlurEffect:blurBackGroundSignUp];
BlurEffect
方法有效,因为当我将代码放入 ViewDidLoad
方法时,我的视图变得模糊,但是当我检查警报或将代码添加到我显示的位置时警告它拒绝显示。我猜有些东西需要覆盖,但我不知道该怎么做。
To get the solution for this follow the simple step mentioned below :
对于模糊效果,只需将 whitecolorimage.php 60% 透明设置为背景。
同时将 'main' 文本设置为透明并设置初始“0px”模糊:
color: transparent; text-shadow:0px 0px 0px #000;
在 Flex 应用程序中
在flex中'<Application />
'标签主要有四个与弹窗模态属性相关的属性
modalTransparency
modalTransparencyBlur
modalTransparencyColor
设置这些属性喜欢:
modalTransparency="0.5"
modalTransparencyBlur="3"
modalTransparencyColor="0xDDDDDD"
简而言之,UIAlertView
中没有任何内容可以阻止显示模糊图像的图像视图。所以它可能很简单。
您必须进行一些诊断以确定问题的根源。问题可能出在快照本身。所以在创建快照的地方暂停执行,将鼠标悬停在保存模糊快照的 UIImage
变量上,单击 "Quick Look" 按钮(看起来像一只眼睛;
接下来要检查以确保图像已添加到图像视图中,并且图像视图已添加到视图层次结构中。您可以继续执行该应用程序,然后点击查看调试按钮
或者您可以 运行 应用程序,点击 "pause" 按钮,然后在 (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>>
请注意,您会在我的第一个屏幕截图中注意到,我临时在 blurredImageView
中添加了一个 tag
号码。我这样做的原因是它可以更容易地在上面显示的视图层次结构中找到有问题的视图(它是最后一行,包含 tag = 42
的那一行)。无论如何,确认包含模糊图像的图像视图在视图层次结构中,具有合理的 frame
并且没有隐藏在任何东西后面。