iOS 7 应用程序如何使自己透明以查看用户的主屏幕图像?

Posted

技术标签:

【中文标题】iOS 7 应用程序如何使自己透明以查看用户的主屏幕图像?【英文标题】:How can an iOS 7 App make itself transparent to see a user's home screen image? 【发布时间】:2013-09-26 03:51:47 【问题描述】:

我见过一些应用程序(例如,Vesper 或 iPad 的提醒应用程序)使用用户的主屏幕背景图像。这怎么可能?

制作透明的视图或窗口或(Gulp!)私有 API 一定是某种巧妙的技巧?

有人敢猜吗?

【问题讨论】:

非常相似的问题:***.com/questions/18714305/…(有趣的是:一个是-2,这个是+7) 因为他在 SDK 仍处于 NDA/Beta 阶段时发布了问题。这里有漂亮的照片。 *** 不负责强制执行任何形式的 NDA,因此问题不应被否决。 ios 13 中,这终于成为可能!在这里查看我的答案:***.com/a/56592568/7840155 【参考方案1】:

我自己没有尝试过,但我听说私有方法[[UIApplication sharedApplication] _setApplicationIsOpaque: NO] 可能会做你想要的。

【讨论】:

我可以确认这种方法确实有效。虽然我有点怀疑上述应用程序使用的是什么(Apple 通常不会善待私有 API 的使用)。 原来 info.plist 中的 UIApplicationIsOpaque 具有相同的影响(而且,我打赌,被拒绝的可能性相同)。 另外你还必须添加一件事:你所在的视图必须有 backgroundcolor = clearcolor 并且对于它后面的所有超级视图。 真希望这不是一个私有 API,它的效果如此之好,而且在 iOS7 应用程序中如此流行!如果他们允许的话,它将使我们的应用程序与操作系统更加统一。另外,如果您让它自动生成,请不要忘记在 AppDelegate 中删除窗口的任何颜色,默认情况下它是白色的。 我只是注意到上面的应用程序已经删除了这个效果。他们改为使用默认壁纸(星系图片)并将其模糊,以最大限度地提高某人仍在使用该 BG 的可能性。哈哈。【参考方案2】:

iOS 13 beta 1 支持在 Info.plist 中将 UIApplicationIsOpaque 设置为 NO。但是,它没有记录在案,因此它可能会被删除或不允许在 App Store 上使用。

【讨论】:

以上是关于iOS 7 应用程序如何使自己透明以查看用户的主屏幕图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 7 中使导航栏透明? [复制]

iOS6/iOS 7 UIView 透明度

用户点击 SearchBar 时如何使 TableView 不透明

仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?

如何使用daisyUI(Tailwind CSS)使身体透明?

Android Cordova:使 WebView HTML 元素透明以查看原生元素