在iPhone OS 3.0中,Apple添加了使用“共享”按钮一次共享多张图片并选择多张图片(使用复选标记)的功能。
我很想拥有一个UIImagePickerController,它允许用户一次选择多个图像,而不必一个一个地去。有没有办法做到这一点,还是我必须等到他们添加这个功能?
答案 0 :(得分:2)
在swift中尝试这个精彩的API:ImagePicker。与所有其他图像API一样,它使用简单,而且更新得很好。
答案 1 :(得分:1)
AssetLibrary + UICollectionView ^^
基本上,使用StoryBoard,您导入UINavigationController
,您将根控制器更改为UICollectionViewController
(将是您的相册列表),最后添加另一个UICollectionViewController
(将是您的照片)列表)。
然后使用Assetlibrary检索用户相册和用户相册内容。
我会在有一段时间后立即制作这样的组件。
答案 2 :(得分:0)
1.install pod- pod“ BSImagePicker”,“〜> 2.8”
3.paste下面的代码在.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
答案 3 :(得分:0)
您可以像这样(快捷键4)一样使用此OpalImagePicker:
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]) {
}
答案 4 :(得分:0)
如果仅支持iOS 14及更高版本,则可以使用Apple的PHPickerViewController。它允许选择多个图像(而UIImagePickerController则不允许)。
与上面列出的其他库相比,使用PHPickerViewController的另一个好处是用户无需授予访问照片库的权限。
答案 5 :(得分:-12)
这样怎么样:
首先打开“photos.app”,选择多张照片并复制;
在您自己的应用中,尝试检索这些副本照片;
我知道有些应用确实喜欢这样,但不知道如何实现第2步。