Как получить доступ к изображениям, снятым с камеры только в Swift, как галерея в iOS? - PullRequest
0 голосов
/ 24 июня 2019

В Android мы получаем изображения с камер только тогда, когда мы открываем галерею программно, но в iOS, когда мы открываем фотографии, мы получаем изображения с камеры и другие нежелательные изображения вместе с ним, такие как изображения WhatsApp. Как фильтровать только изображения с камеры при открытии галереи?

То, что я пробовал в Swift 4, показано ниже:

func getPhotosAndVideos()
{
    let fetchOptions = PHFetchOptions()
    fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate",ascending: false)]

    fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)

    print("fetchOptions : ", fetchOptions)

    let assets = PHAsset.fetchAssets(with: fetchOptions)

    var results = NSMutableArray()
    assets.enumerateObjects { (obj, idx, bool) -> Void in

        results.add(obj)
    }

    let cameraRollAssets = results.filtered(using: NSPredicate(format: "sourceType == %@", argumentArray: [3]))
    results = NSMutableArray(array: cameraRollAssets)

    print("cameraRollAssets : ", cameraRollAssets)

    print("results : ", results)
}

Мне нужны только снимки с камеры, сделанные моим телефоном.

1 Ответ

0 голосов
/ 24 июня 2019

Эй, вы можете сделать это с помощью стандартного UIImagePickerController от Apple ()

class testViewController: UIViewController {
    let picker = UIImagePickerController()
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    @IBAction openPicker(_ sender: UIButton) {
      self.picker.sourceType = .savedPhotosAlbum
      self.picker.delegate = self
      self.present(self.picker, animated: true, completion: nil)
    }
}

extension testViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        print(info)
    }
}
...