【问题标题】:How to access images taken from camera only in Swift like a gallery in iOS?如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?
【发布时间】:2019-06-24 10:17:32
【问题描述】:

在 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)
}

我只想要手机拍摄的相机图像。

【问题讨论】:

  • 你好@devNewbie,这个问题的堆栈溢出有很多答案。添加问题后您应该先搜索。

标签: ios swift uiimagepickercontroller phasset


【解决方案1】:

你可以使用苹果默认的 UIImagePickerController() 来做到这一点

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)
    }
}

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2012-01-12
    • 2012-10-18
    • 2013-11-10
    • 2011-07-15
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多