在iPhone OS 3.0中,Apple添加了使用“共享”按钮一次共享多张图片并选择多个图像(使用复选标记)的功能。
我想拥有一个UIImagePickerController,它允许用户一次选择多个图像,而不必一个一个地去。有没有办法做到这一点,还是我必须等到他们添加此功能?
在swift中尝试这个精彩的API:ImagePicker。与所有其他图像API一样,它使用简单,并且更新得很好。
AssetLibrary + UICollectionView ^^
基本上,使用StoryBoard,您导入aUINavigationController
,您将根控制器更改为anUICollectionViewController
(将是您的相册列表),最后添加anotherUICollectionViewController
(将是您的照片列表)。
然后使用Assetlibrary检索用户相册和用户相册内容。
一旦我有时间,我就会制作一个这样的组件。
1.在“BSImagePicker”下安装,“〜> 2.8”
3.在.swift文件中加入以下代码 -
import UIKit
import BSImagePicker
import Photos
class MultipleImgViC: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var SelectedAssets = [PHAsset]()
var photoArray = [UIImage]()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func selectImages(_ sender: Any) {
let vc = BSImagePickerViewController()
self.bs_presentImagePickerController(vc, animated: true, select: { (assest: PHAsset) -> Void in
},
deselect: { (assest: PHAsset) -> Void in
}, cancel: { (assest: [PHAsset]) -> Void in
}, finish: { (assest: [PHAsset]) -> Void in
for i in 0..<assest.count
{
self.SelectedAssets.append(assest[i])
}
self.convertAssetToImages()
}, completion: nil)
}
@IBAction func dismissview(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
}
extension MultipleImgViC{
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: 0.7)
let newImage = UIImage(data: data!)
self.photoArray.append(newImage! as UIImage)
}
self.imageView.animationImages = self.photoArray
self.imageView.animationDuration = 3.0
self.imageView.startAnimating()
}
}
}
注意: - 如果pod文件提供“如何修复”SWIFT_VERSION'3.0'不受支持,支持的版本是:4.0,4.2,5.0“Xcode 10.2中的错误?”此错误然后从此链接解决: - https://stackoverflow.com/a/55901964/8537648
视频参考: - https://youtu.be/B1DelPi1L0U
你可以像这样使用这个OpalImagePicker(Swift 4):
var imagePicker: OpalImagePickerController!
imagePicker = OpalImagePickerController()
imagePicker.imagePickerDelegate = self
imagePicker.selectionImage = UIImage(named: "aCheckImg")
imagePicker.maximumSelectionsAllowed = 3 // Number of selected images
present(imagePicker, animated: true, completion: nil)
然后实现其委托:
func imagePickerDidCancel(_ picker: OpalImagePickerController) {
//Cancel action
}
func imagePicker(_ picker: OpalImagePickerController, didFinishPickingImages images: [UIImage]) {
}
怎么样这样:
我知道有一些应用确实这样,但不知道如何实现第2步。