拍照允许我 select 超过 BSImagePicker 中的 maxNumberOfSelections Swift ios

Take photos allows me to select more than maxNumberOfSelections in BSImagePicker Swift ios

这是我的代码


 let vc = BSImagePickerViewController()
    vc.takePhotos = true
    vc.maxNumberOfSelections = 2

    bs_presentImagePickerController(vc, animated: true,
                                    select: { (asset: PHAsset) -> Void in
                                        print("Selected: \(asset)")
    }, deselect: { (asset: PHAsset) -> Void in
        print("Deselected: \(asset)")
    }, cancel: { (assets: [PHAsset]) -> Void in
        print("Cancel: \(assets)")
    }, finish: { (assets: [PHAsset]) -> Void in
        print("Finish: \(assets)")
        print(assets.count)
        for i in 0..<assets.count
        {
            self.SelectedAssets.append(assets[i])
            print(self.SelectedAssets)
        }
    }, completion: nil)

如果我select 2张照片,然后点击相机,然后它允许我拍摄一张照片,并且新的照片标记为“3”,这超过了最大数量select离子定义。

这似乎是 BSImagePickerViewController 中的错误,因为在使用 .camera 显示 imagePicker 时未检查最大选择数。因此,您可以通过在 287 行的 PhotosViewController 中添加条件来 change/unlock 本地 pod,如下所示,

    // Camera shouldn't be selected, but pop the UIImagePickerController!
    let isAllowedToTakePicture = (photosDataSource?.selections.count ?? 0) < settings.maxNumberOfSelections
    if let composedDataSource = composedDataSource , composedDataSource.dataSources[indexPath.section].isEqual(cameraDataSource), isAllowedToTakePicture {
        let cameraController = UIImagePickerController()
        cameraController.allowsEditing = false
        cameraController.sourceType = .camera
        cameraController.delegate = self

        self.present(cameraController, animated: true, completion: nil)

您还可以分叉此库并使用此修复程序提出拉取请求,以便版主可以合并您的修复程序。

以上修复将是临时的,如果你做了 pod install/update 它会再次出现,直到它不被合并到原始库中。