Swift iOS 16:如何禁用PhotoPicker侧边栏并恢复旧版样式
强制恢复iOS 15及更早版本的PhotoPicker无侧边栏样式
可行方案:
限制Picker的显示尺寸:iOS 16+中大屏设备的PhotoPicker会根据容器尺寸触发侧边栏逻辑,手动设置
PHPickerViewController的preferredContentSize为小屏设备的典型尺寸,就能强制切换到无侧边栏的布局:let pickerConfig = PHPickerConfiguration() let picker = PHPickerViewController(configuration: pickerConfig) // 设置为iPhone级别的尺寸,可根据需求调整数值 picker.preferredContentSize = CGSize(width: 375, height: 667) present(picker, animated: true)嵌入自定义导航控制器约束尺寸:如果直接设置
preferredContentSize不生效,可将PHPickerViewController嵌入自定义UINavigationController,并约束导航控制器的尺寸,避免Picker触发大屏适配逻辑。降级使用旧版选择器:若业务对Picker功能要求不高,可直接使用
UIImagePickerController,它在iOS 16+中仍保持iOS 15及更早版本的无侧边栏样式,不过功能上不如PHPickerViewController完善。
注意:以上方法属于利用系统布局逻辑的非标准用法,后续iOS版本迭代可能导致失效,需充分测试后再上线。
内容的提问来源于stack exchange,提问作者Filip Z
相关产品推荐
相关产品推荐

