如何在 iOS13 上的 iPad 上呈现 iPhone 风格的 actionSheet?
Posted
技术标签:
【中文标题】如何在 iOS13 上的 iPad 上呈现 iPhone 风格的 actionSheet?【英文标题】:How to present actionSheet in iPhone style on iPad on iOS13? 【发布时间】:2020-01-07 06:26:27 【问题描述】:一些背景知识可以更好地理解这个问题:
在 iPad 上的 iOS 12 上,当我使用 .actionSheet
作为 UIAlertController
的类型时,它显示为弹出框。另外需要设置sourceRect
和sourceView
,否则会崩溃。
但是。当我在 ViewController 中以 formSheet/pageSheet/popover 的形式呈现这样的警报时,警报将不需要 sourceRect/sourceView 并且将呈现为 iPhone 样式的操作表(但不像它那样作为弹出框应该在 iPad 上)。看起来像这样:
ios 13 发生了什么:
在 iOS13 上,这种行为发生了变化。上面的情况现在崩溃了,需要 sourceRect/sourceView ,因为它通常发生在 iPad 上。这意味着即使警报显示在 formSheet/pageSheet/popover VC 中,它仍然需要 sourceRect/sourceView,现在它将显示为弹出框(但不是 iPhone 样式的操作表)。
问题:
如果有人知道如何在这种情况下以相同的 actionSheet 样式(但不是弹出框)保持警报演示,我将不胜感激,就像以前在 iOS 12 上一样。
更新:显然这个问题开始出现在 iOS13.2(不是 13.0)
【问题讨论】:
我还没有找到这样做的方法。看起来他们只是撤回了可以让警报出现在 inside 呈现的视图控制器的功能。我的猜测是这是一个漏洞/边缘案例,他们关闭了它。 @matt 知道了,谢谢分享。很高兴听到我不是唯一一个有这个问题的人。但很遗憾他们删除了这个“功能”。 【参考方案1】:自 iOS 13.2 起,不再可能实现所需的行为。
【讨论】:
发行说明中有这个吗? @pfandrade 没有。因为以前它也从来不是一个“功能”。所以他们没有删除他们承诺拥有的东西..以上是关于如何在 iOS13 上的 iPad 上呈现 iPhone 风格的 actionSheet?的主要内容,如果未能解决你的问题,请参考以下文章
网站在 iOS6 中正常呈现,但在 iOS5 iPad 模拟器中翻倍
如何使用 iOS 13 在 iPad/iPhone 上隐藏页面缩放栏