ios - 使用 BSImagePicker Swift4 在图库中显示刚刚选定的图像

标签 ios swift swift4

我正在使用“BSImagePicker”。但我有一个问题 第一次我要在图库中选择 2 个图像,选择 2 个图像返回到我的 viewController 后,我将再次在图库中选择图像,但我看不到所选图像

我想查看相册中刚刚选择的图片。

这是我的 BSImagePicker 方法

let vc = BSImagePickerViewController()
    vc.maxNumberOfSelections = 2
    vc.takePhotos = true
    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)

任何帮助

最佳答案

var arrSelectedPics : [Any] = []
    var SelectedAssets = [PHAsset]()
    var PhotoArray: [Data] = []
    
    // for only photo upload
    func photoUpload(){
        
        // create an instance
        let vc = BSImagePickerViewController()
        
        //display picture gallery
        self.bs_presentImagePickerController(vc, animated: true,
                                             select: { (asset: PHAsset) -> Void in
                                                
                                             }, deselect: { (asset: PHAsset) -> Void in
                                                // User deselected an assets.
                                                
                                             }, cancel: { (assets: [PHAsset]) -> Void in
                                                // User cancelled. And this where the assets currently selected.
                                             }, finish: { (assets: [PHAsset]) -> Void in
                                                // User finished with these assets
                                                for i in 0..<assets.count
                                                {
                                                    self.SelectedAssets.append(assets[i])
                                                    let resource = PHAssetResource.assetResources(for: assets[i]).first
                                                    let name = resource?.originalFilename
                                                    let PicsLocalPath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(name!)
                                                    
                                                    print("----------------PicsLocalPath-------------",PicsLocalPath)
                                                    
                                                    
                                                    self.arrSelectedPics.append(PicsLocalPath)
                                                    
                                                }
                                                
                                                self.convertAssetToImages()
                                                print("----------------assets-------------",self.arrSelectedPics)}, completion: nil)
    }
    
    
    // convert assets to images
    func convertAssetToImages() -> Void {
        
        if SelectedAssets.count != 0{
            
            for i in 0..<SelectedAssets.count{
                
                let manager = PHImageManager.default()
                let option = PHImageRequestOptions()
                var thumbnail = UIImage()
                option.isSynchronous = true
                
                manager.requestImage(for: SelectedAssets[i], targetSize: CGSize(width: 200, height: 200), contentMode: .aspectFill, options: option, resultHandler: {(result, info)->Void in
                    thumbnail = result!
                })
                
                let data = thumbnail.jpegData(compressionQuality: 1)
                
                self.PhotoArray.append(data!)
            }
        }
        //final images array
        print("complete photo array \(self.PhotoArray)")
    }

关于ios - 使用 BSImagePicker Swift4 在图库中显示刚刚选定的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51305787/

相关文章:

ios - 修饰 UIButton 时进度 View 停止

swift - 为什么我在应用程序和 Playground 之间得到不同的结果?

json - 如何使用 autoID 解码 Firebase JSON

swift - 为什么 DispatchWorkItem 会通知 crash?

ios - <DGTabBarController : 0xd15e2e0> 开始/结束外观转换的不平衡调用

objective-c - 核心数据 : force one attribute to load before others

ios - 如何为多个 UILabel 创建一个 tapGestureRecognizer?

swift - 在 UIView 中更新中心 Y 和中心 X 约束

json - 如何让 JSONDecoder 解析这种格式? (yyyy-MM-dd'T'HH :mm:ss. SSSSSSS)

ios - 在 PubNub 中接收双推送通知