在 Swift/Objective-c 中按媒体类型自定义图像选择器

Posted

技术标签:

【中文标题】在 Swift/Objective-c 中按媒体类型自定义图像选择器【英文标题】:Customizing Image picker by media type in Swift/Objective-c 【发布时间】:2021-09-08 08:28:22 【问题描述】:

我想按类别(如静态照片、实时照片、视频、慢动作等)媒体来选择一个或多个图像/视频。 当用户选择“实时照片按钮”时,只会出现实时照片。 当用户选择“慢动作按钮”时,只会出现慢动作视频,依此类推。 我正在尝试使用UIImagePickerController,但它可能不支持自定义。 我找到了this 库,但我总是得到这个error。

在 Swift/Objective-C(ios 版本至少 12)中是否有其他可用的库或方法?

【问题讨论】:

【参考方案1】:

要实现这一点,您可以使用phpickerViewController

您可以使用PHPickerConfiguration 仅显示某些媒体类型或限制选择的最大数量,例如:

let configuration = PHPickerConfiguration()
configuration.selectionLimit = 10
configuration.filter = .livePhotos

然后 init PHPickerViewController 使用您的配置,并根据需要使用委托方法。

let controller = PHPickerViewController(configuration: configuration)
controller.delegate = self
present(controller, animated: true, completion: nil)

【讨论】:

它是否适用于 iOS >=10?我找不到任何像 PHPickerViewController 的模块 我明白了。但我需要至少为 iOS 12.0 用户支持我的应用程序。但 PHPickerViewController 仅支持 iOS 14+ 那么我认为您需要使用一个自定义库,例如github.com/DragonCherry/AssetsPickerViewController 我现在已经用过了(AssetsPickerViewController 库)。但它没有显示任何其他子类别。当我添加子类别时,它总是显示空视图。

以上是关于在 Swift/Objective-c 中按媒体类型自定义图像选择器的主要内容,如果未能解决你的问题,请参考以下文章

归档应用程序时找不到 Swift Objective-C 标头

在 Swift/Objective-C 中重用 tableviewcell 时,属性标签不会消失

在视图控制器上不显示视图控制器 - Swift / Objective-C

是否可以以编程方式从 Swift/Objective-C 中的 UIViewController 或 Storyboard 中获取基本 UIViewController 的标识符?

javascript 在Tachein中按类添加交互

使用 WebDriver 在 codeceptJS 中按类获取元素