选择多个图像(UIImagePickerController或Photos.app共享UI)

问题描述 投票:14回答:5

在iPhone OS 3.0中,Apple添加了使用“共享”按钮一次共享多张图片并选择多个图像(使用复选标记)的功能。

我想拥有一个UIImagePickerController,它允许用户一次选择多个图像,而不必一个一个地去。有没有办法做到这一点,还是我必须等到他们添加此功能?

ios iphone uiimagepickercontroller
5个回答
2
投票

在swift中尝试这个精彩的API:ImagePicker。与所有其他图像API一样,它使用简单,并且更新得很好。


1
投票

AssetLibrary + UICollectionView ^^

基本上,使用StoryBoard,您导入aUINavigationController,您将根控制器更改为anUICollectionViewController(将是您的相册列表),最后添加anotherUICollectionViewController(将是您的照片列表)。

然后使用Assetlibrary检索用户相册和用户相册内容。

一旦我有时间,我就会制作一个这样的组件。


0
投票

1.在“BSImagePicker”下安装,“〜> 2.8”

  1. 内部信息plist添加行隐私 - 照片库使用说明

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

示例图片:-enter image description here


0
投票

你可以像这样使用这个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]) {
}

-13
投票

怎么样这样:

  1. 首先打开“photos.app”,选择多张照片,然后复制它们;
  2. 在您自己的应用中,尝试检索这些副本照片;

我知道有一些应用确实这样,但不知道如何实现第2步。

© www.soinside.com 2019 - 2024. All rights reserved.