如何在自定义 iOS 应用扩展中关闭横向?

Posted

技术标签:

【中文标题】如何在自定义 iOS 应用扩展中关闭横向?【英文标题】:How to turn off landscape orientation in custom iOS App Extension? 【发布时间】:2015-11-24 00:54:47 【问题描述】:

我有一个自定义的 ios 应用扩展,当设备旋转时我无法关闭横向。

我需要应用扩展程序保持纵向模式。

应用扩展忽略 -preferredInterfaceOrientationForPresentation 并且显然没有从我的基础应用继承。

【问题讨论】:

应用扩展受其宿主应用的支配。在根 UIView 之外,您没有真正的控制权。 那么不可能吗?我看到将状态栏文本更改为白色也是不可能的。苹果干得好。 我知道你在讽刺,所以我只想指出你的扩展是另一个应用程序中的访客。想想您收到应用程序用户的错误报告、抱怨状态栏无缘无故地变成白底白字(用户通常不会将他们的操作与观察到的错误相关联)或消失的感觉。跨度> 我正在使用自定义共享扩展,因此它占据了整个屏幕。所以在我的深色背景颜色上几乎看不到状态栏文本(与我的应用程序的主题保持一致)。不过,我确实需要仅以纵向模式显示扩展程序。 这无关紧要。您的代码仍在另一个应用程序中运行,如果您更改状态栏,没有什么会迫使您将其更改回来。此外,请记住,对于应用程序如何更改系统,Apple 始终是保守的。这自然延伸到限制扩展如何影响主机应用程序。也许有一天,Apple 会想出一个聪明的方法让扩展指定这些东西。 【参考方案1】:

为什么不通过app plist设置呢?

如果你喜欢扩展,也请设置shouldAutorotate返回NO。

【讨论】:

其实没用,不知道为什么暂时没用。在 plist 中,我将支持界面方向设置为仅纵向(底部主页按钮),并且我还将 shouldAutorotate 设置为返回 NO。还是没有运气?这甚至可以在扩展中实现吗? 我现在遇到了这个问题!你有没有找到任何解决方案@Chicken? 不幸的是,我最终不得不同时支持这两个方向。不知道现在有没有办法,我只是放弃了:(

以上是关于如何在自定义 iOS 应用扩展中关闭横向?的主要内容,如果未能解决你的问题,请参考以下文章

在自定义键盘扩展中检测输入对象视图类型

在自定义键盘扩展中播放标准 iOS 键盘点击声音

如何将使用 Mask Rcnn 在自定义对象检测上创建蒙版图像的 Keras 模型转换为 CoreML 模型以在 iOS 应用程序中使用?

在 iOS 13 中关闭 UIScrollView 指示器清理

iOS - 如何在自定义单元格中使用继承?

Android 自定义Lint 基础教程