iOS 7 - 将用户壁纸作为UIWindow的背景显示

16

如何使iOS应用程序显示用户的壁纸?苹果在Safari浏览器的标签视图和电话键盘等地方使用此功能。调整UIWindow的透明度无法实现此功能...


在iOS 13中,这终于成为可能了!请查看我的答案:https://dev59.com/zHfZa4cB1Zd3GeqPMxDR#56592568 - Tzar
2个回答

14

这个已经不可用了。太遗憾了,因为它能产生一种漂亮的本地效果

要展示用户壁纸,你需要做以下几件事情:

1 - 在项目的plist中将UIApplicationIsOpaque设置为false。

2 - 在应用程序委托的加载函数中进行以下操作。

self.window.backgroundColor = [UIColor clearColor];
self.window.opaque = NO;

3 - 将UIViewController.view的背景颜色设置为[UIColor clearColor]。

目前这对我们有效。如果您尝试截屏或实际使用壁纸,它只会返回纯黑色(因此隐私问题不适用,因为您无法使用壁纸)。


有关于使用这种方法是否会导致应用程序被拒绝的任何消息吗? - davis
2
苹果又为自己提供了另一个功能(例如我们可以在电话应用程序拨号器中看到它),但不向第三方开发人员提供... - P. Unto
3
还有效吗?我尝试了这些步骤,但不再起作用了。在某个时间点上是可以的... 但在7.0.2/3上似乎不再起作用了。有人能证实或否认吗? - Ethan Mick
你甚至不能尝试使用这个plist键提交应用程序,它将无法通过验证。虽然在UIApplication中有一种通过私有方法实现的方式,但在7.0.3中已经被禁用了。 - radutzan

3

由于隐私问题,此功能不可供第三方开发人员使用。

如果您在第三方应用程序中这样做,您可以在不询问用户的情况下捕获背景图像。


1
这不是真的。当应用程序通过编程方式进行截屏时,壁纸会显示为黑色。 - Warpling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接