Подтвердить что ты не робот

Выберите несколько изображений (UIImagePickerController или Photos.app Share UI)

В iPhone OS 3.0 Apple добавила возможность обмениваться несколькими изображениями одновременно, используя кнопку "Поделиться" и выбирая несколько изображений (где используется галочка).

Я хотел бы иметь UIImagePickerController, который позволяет пользователю выбирать несколько изображений одновременно, вместо того, чтобы идти по одному. Есть ли способ сделать это, или я должен ждать, пока они не добавят эту функцию?

4b9b3361

Ответ 1

Попробуйте этот замечательный API в быстрой: ImagePicker. Как и все другие API изображений, он прост в использовании и очень хорошо обновляется.

Ответ 2

AssetLibrary + UICollectionView ^^

В принципе, при StoryBoard вы импортируете UINavigationController, вы измените корневой контроллер на UICollectionViewController (будет ваш список альбомов), добавьте еще один UICollectionViewController (будет ваш список фотографий).

Затем с Assetlibrary вы извлекаете альбомы пользователей и содержимое пользовательского альбома.

Я сделаю такой компонент, как только у меня будет время.

Ответ 3

1. установить модуль - модуль "BSImagePicker", "~> 2.8"

  1. внутри info plist добавить строку Конфиденциальность - Описание использования библиотеки фотографий

3. Вставьте код ниже .swift file-

    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?" Эта ошибка, а затем устраните ее по этой ссылке: - fooobar.com/questions/17229558/...

ссылка на видео: - https://youtu.be/B1DelPi1L0U

пример изображения: - enter image description here

Ответ 4

Вы можете использовать этот 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]) {
}

Ответ 5

Как насчет этого способа:

  • Сначала откройте "photos.app", выберите несколько фотографий и скопируйте их.

  • В своем собственном приложении попробуйте получить эти копии фотографий;

Я знал, что есть некоторые приложения, вроде этого, но не знаю, как достичь шага 2.