如何在我的 iOS 应用程序中获得透明背景,以便我可以看到主屏幕壁纸?

Posted

技术标签:

【中文标题】如何在我的 iOS 应用程序中获得透明背景,以便我可以看到主屏幕壁纸?【英文标题】:How can I get a transparent background in my iOS app so I can see the Home Screen wallpaper? 【发布时间】:2013-09-20 09:22:42 【问题描述】:

我很确定这将是直截了当的,因为它可能是不可能的。

基本上,我希望能够像新的报亭应用一样,通过我的视图轻轻地看到背景壁纸。

我尝试将视图的 alpha 值和背景颜色更改为 clear,但这些似乎都没有。

【问题讨论】:

请告诉我该怎么做 【参考方案1】:

Apple 已在 7.0.3 中删除了使用此 api 的功能。真可惜。

至少在几天前,您当然可以在 ios7 中使用。在我们的应用程序中,一旦您设置以下内容,它会使您的背景透明并显示用户壁纸。如果您尝试以编程方式截取屏幕截图,它只会显示为黑色。

    在项目plist中设置UIApplicationIsOpaquefalse

    在应用委托加载函数中:

    self.window.backgroundColor = [UIColor clearColor];

    self.window.opaque = NO;

    UIViewController.view的背景色设置为[UIColor clearColor]

【讨论】:

太好了,谢谢。不知道为什么我找不到——不过,当我搜索 UIApplicationIsOpaque 时,我得到了一些结果。非常感谢您的跟进。 这个一个私有API。不幸的是,iTunes Connect 不接受在其 Info.plist 中包含 UIApplicationIsOpaque 的应用程序包。 我开始讨厌 Apple 添加了所有这些非常酷的分层效果并为此做了很多工作,只是为了不允许开发人员做同样的事情。即使是玻璃般的模糊效果也应该是定义的背景颜色:(。 更新 7.0.3 搞砸了这个方法... :( 真是太可惜了 :(( 已经 4 年了,仍然没有办法 afaik【参考方案2】:

好消息。从 iOS 13 开始,终于可以为所有第三方应用启用背景透明度了。它不再是私有 API。

在您应用的 Info.plist 文件中,将布尔值设置为 UIApplicationIsOpaqueNO

现在用户的壁纸在您的应用中可见。

【讨论】:

已确认这实际上是一个错误,应用程序可能因此被拒绝:twitter.com/develobile/status/1139699571498426368 那个“确认”对我来说看起来并不那么合法……这个人真的认识 Craig Federhigi 吗,Craig 真的有时间去检查这样的事情是否是子-他的团队?嗯.. - 仍然,我没有得到它的工作。【参考方案3】:

这在 iOS 中是不可能的。当您的应用正在运行时,这并不意味着您的应用后面有主屏幕。

但是,如果您确实想这样做,有一种方法可以让您的应用进入后台,截取屏幕截图并将该图像用作您的背景,感觉就像主屏幕一样。

See this post. 在此链接中,接受的答案提供了一种在您的应用程序处于后台时截取主屏幕屏幕截图的方法。但这是通过私有 API 实现的,这意味着您的应用可能会在提交时被 App Store 拒绝。

【讨论】:

是的,这是有道理的,它实际上并不存在。很遗憾他们在自己的应用程序中使用它时不会打开它......感谢您的回复。 D.

以上是关于如何在我的 iOS 应用程序中获得透明背景,以便我可以看到主屏幕壁纸?的主要内容,如果未能解决你的问题,请参考以下文章

将不透明度设置为滑动标签布局?

具有透明背景的 iOS 应用程序图标在设备上显示黑色背景

在我的导航栏 iOS 7 中设置色调/半透明级别的问题

UIVisualEffects、UIWebView 透明背景

如何使 UITableView 成为透明的?

iOS透明uitabbar不起作用