如何使用墙纸透明UIView

时间:2015-02-23 00:20:18

标签: ios objective-c

Apple的iPod应用程序和远程应用程序可以看到壁纸图像的模糊版本,如下图所示:

enter image description here enter image description here enter image description here

我非常喜欢这种效果,所以我尝试设置我的根视图的alpha值,但它不起作用。

我将opaque设置为NO,但仍然无效。它看起来就像一个黑屏:

enter image description here

我的问题是:可能仅限于Apple的应用程序使用?

2 个答案:

答案 0 :(得分:1)

used to work,但它从未记录过,显然已从iOS的更新版本中删除。您可以使用UIVisualEffectView模糊自己应用中的内容,但无法使应用透明,以便您可以看到设备壁纸。如果您认为Apple应该为开发人员添加此功能,您应该file a bug

答案 1 :(得分:0)

当应用获得背景时,请使用以下代码:

UIBlurEffect *blur          = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
UIVisualEffectView *effectView  = [[UIVisualEffectView alloc] initWithEffect:blur];
[effectView setFrame:self.view.bounds];
[self.view addSubview:effectView];

ADDED

- (void)applicationWillResignActive:(UIApplication *)application {
    UIBlurEffect *blur          = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    UIVisualEffectView *effectView  = [[UIVisualEffectView alloc] initWithEffect:blur];
    [effectView setFrame:[[UIScreen mainScreen] bounds]];
    [[[UIApplication sharedApplication] keyWindow] addSubview:effectView];

}

经过测试和工作。

当应用程序变为活动状态时,不要忘记删除effectView。