gpt4 book ai didi

ios - 在 iOS 7 中触发或延迟自动旋转

转载 作者:行者123 更新时间:2023-11-29 12:54:33 25 4
gpt4 key购买 nike

是否可以在 iOS 7 中以任何方式延迟或触发自动旋转,而无需切换到新的 View Controller ?

以 iPad 上的 Siri 为例。当 Siri 被激活时,在它后面运行的应用程序被延迟和模糊,Siri 的透明界面位于顶部。如果您在使用 Siri 时旋转设备,什么也不会发生,但在关闭 Siri 时,自动旋转事件最终会触发。

我在我的应用程序中实现了类似的模糊/延迟效果,方法是拍摄窗口快照、模糊/缩放它、将其放置在正在显示的 View 之上,以及在顶部放置额外的透明内容。因为这是一个快照,无法即时调整大小,所以我通过 -shouldAutorotate 在 View 层次结构中返回 NO 来防止发生自动旋转(如 Siri)。一旦解除此状态,我将再次允许 自动旋转,但不会触发任何旋转。这是因为当应用程序处于这种模糊/延迟模式时发生的旋转被忽略了。

我从此模式返回后,是否可以触发自动旋转以正确旋转到设备的实际方向?

最佳答案

这是我的三个建议:

  1. 使用实时模糊 View 并允许动画。有许多开源实现,其中大部分使用拉伸(stretch)的工具栏或其模糊的 CALayer。这将允许您支持旋转以及在模糊背景(如 Siri)下进行实时取景。 编辑: 深入研究后,我发现某些使用工具栏 CALayer 的开源实现被 Apple 拒绝了。通过使用工具栏并拉伸(stretch)它似乎是安全的。

  2. 拍摄关键窗口的快照后,将该快照显示为显示在关键窗口上方的另一个窗口的根 View 。如果我没记错的话,一个没有附加 View Controller 的 View 在添加到窗口的 View 层次结构时不会旋转。 (如果是这样,使用反变换很容易反击。)本质上,您将获得非旋转 View 。但是,下面的窗口将正常旋转。关闭快照保持窗口时,将其淡出,以便将下面的 View 层次结构平滑地呈现给用户。这种方法的缺点是模糊背景无法实时预览,旋转动画不会被用户看到。

  3. iOS 中的旋转基本上是 View Controller 对 View 设置变换,如果满足所有条件并确定支持界面旋转。在负责模糊 View 的 View Controller 中,使用反转变换进行反向旋转。这应该使 View 看起来好像没有旋转。一旦需要隐藏模糊 View ,使用动画 block 重置变换,这将创建与旋转相同的动画。如果将这种方法与实时模糊 View 相结合,这将以 1:1 的比例重现原生 Siri 体验。您唯一的问题是无论 View 的变换如何,状态栏都会旋转,因为它从不同的系统获得变换。对此有灰色区域补救措施。

这些建议按实现难易程度排序。每个都可以单独实现,也可以 1+2、1+3 或 1+2+3 的组合实现。

关于ios - 在 iOS 7 中触发或延迟自动旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21489944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com