在Limited Library Picker上配置选择限制

mat*_*hau 7 xcode ios swift swift5 ios14

考虑到用户隐私,我想实现一个有限的库选择器(在 iOS 14 中引入)。我们的应用程序允许用户为每个组件附加一张照片,从而处理技术组件的状况评估。为此,我们已经使用了PHPickerViewControllerselectionLimit 为1 的传统配置。我希望新的Limited Library Picker 能够提供类似的PHPickerConfiguration选项。然而,情况似乎并非如此,因为它的 API 没有公开可配置PHPickerViewController对象。presentLimitedLibraryPicker相反,呈现有限库选择器的唯一方法显然是从单例中调用该方法PHPhotoLibrary。因此,我始终可以在“有限库”视图中选择多张照片,而所需的行为是最多选择一张照片。有谁知道如何使用有限的库选择器来实现这种行为?

在下面的代码示例中,如果用户PHAuthorizationStatus.authorized(工作正常),则显示传统的 PHPickerViewController;如果PHAuthorizationStatus.limited(缺少选择限制),则显示有限库选取器:

        PHPhotoLibrary.requestAuthorization(for: .addOnly) { status in
            switch status {
            case .authorized:
                var configuration = PHPickerConfiguration(photoLibrary: PHPhotoLibrary.shared())
                configuration.filter = .images
                configuration.selectionLimit = 1
                let phPicker = PHPickerViewController(configuration: configuration)
                phPicker.delegate = self as PHPickerViewControllerDelegate
                DispatchQueue.main.async {
                    self.view?.present(viewController: phPicker)
                }
            case .limited:
                PHPhotoLibrary.shared().register(self)
                DispatchQueue.main.async {
                    PHPhotoLibrary.shared().presentLimitedLibraryPicker(from: self)
                }
            default:
                //Ask for permission
        }
Run Code Online (Sandbox Code Playgroud)