[英]Show just selected images in gallery using BSImagePicker Swift4
I'm using 'BSImagePicker'.but I have a problem first time i am going to select 2 images in gallery, after selecting 2 images returning to my viewController,again i am going to select image in gallery but i can't see selected images我正在使用'BSImagePicker'。但是我第一次遇到问题我要去画廊中的select 2张图片,在选择2张图片返回我的viewController之后,我再次去画廊中的select图片但我看不到选择图片
I want to see just selected picture in albums.我想在相册中看到刚刚选择的图片。
this is my BSImagePicker method这是我的 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)
Any help任何帮助
Provide your assets to this line code , it will return you the images .将您的资产提供给此行代码,它将返回您的图像。
Your this method under dispatch.你的这个方法正在调度中。
print("Finish: \(assets)")
if let imageView = vc.imageView {
PHCachingImageManager.default().requestImage(for: asset, targetSize:imageView.frame.size, contentMode: .aspectFit, options: options) { (result, _) in
imageView.image = result
}
}
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)")
}
Updated for iOS 15 and above更新为 iOS 15 岁及以上
You have to add the Photos Framework您必须添加照片框架
import Photos导入照片
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.