iPad 12.9'' 分屏上的折叠细节视图控制器

Posted

技术标签:

【中文标题】iPad 12.9\'\' 分屏上的折叠细节视图控制器【英文标题】:Collapse detail view controller on iPad 12.9'' split screeniPad 12.9'' 分屏上的折叠细节视图控制器 【发布时间】:2020-06-16 08:28:11 【问题描述】:

我正在为我的应用程序构建一个历史记录部分,它使用 SplitViewController 将日历显示为 Master,并将某一天的统计信息显示为 Detail。一切都很好,除了一个烦人的问题:在 12.9 英寸的 iPad 大屏幕上,当处于横向模式并分成两半时,框架的宽度是 wR 大小类,这导致 SplitViewController 显示 Master 和 Detail,后者挤压并且几乎无法使用:

另一方面,当处于纵向模式和 2/3 分屏时 - 尽管根据 Xcode 它也是一个 wR 类 - 我的日历 Master 占据了整个帧,其中 Detail 折叠:

我宁愿在第一种情况下也更喜欢这种布局,但很难找到一种强制折叠细节的方法。我尝试将 maximumPrimaryColumnWidth 设置为所需的 678 pt 或更大的大小,但没有效果。

有人可以为此提出一个优雅而实用的解决方案吗?

【问题讨论】:

我最近开发了一个库并在 gitHub 上发布,适用于 iPhone 和 iPad 的 ios 设备。它的作用类似于 UISplitViewController,但您可以使用更多自定义选项。 github.com/ytur/USController 【参考方案1】:

是的,这是可能的,做一个拆分视图控制器的父视图控制器,并使用setOverrideTraitCollection(_:forChild:) with compact 以在屏幕宽度为一定大小时使拆分折叠。

以下是来自 Apple 自适应照片示例的相关示例:

https://github.com/ios8/AdaptivePhotosAnAdaptiveApplication/blob/master/AdaptivePhotos/AAPLTraitOverrideViewController.m

这里是 WWDC 2014 会议的视频解释它:

https://www.youtube.com/watch?v=lMGnZ5iTmuI

【讨论】:

覆盖 traitCollection 是一个可行的解决方案,只是看起来有点重量级——我希望 UISplitViewController 有一些内置技术,可以在各种情况下手动折叠。 压倒性的特质不是重量级的,而是标准的方式。您可以尝试新的 iOS 14 基于列的拆分视图控制器,看看它在 12.9" iPad Pro 上的 50:50 多任务拆分中是否效果更好。

以上是关于iPad 12.9'' 分屏上的折叠细节视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

iOS 10 iPad Safari分屏多任务功能确实有用

为啥安全区域没有覆盖 iPad Pro 12.9" 上的屏幕宽度 [关闭]

iPad 多任务处理的首选状态栏样式 - 分屏

当 UISplitViewController 上的菜单滑动时,收缩细节视图控制器动画

在 iPhone 和 iPad 上清除视图控制器

unity3d onGUI怎么显示在副屏上