我試圖檢索一個PHAsset但PHAsset.fetchAssets(與ALAssetURLs:選項:)已從iOS 8棄用,所以如何正確檢索PHAsset?如何從UIImagePickerController檢索PHAsset
1
A
回答
0
我不確定你想要什麼。
你想要瞄準iOS 8嗎?
這是我如何獲取照片,它適用於iOS(8.0和更高版本),macOS(10.11和更高版本),tvOS(10.0和更高版本)。 代碼被註釋掉它可能會產生混淆
- 第一個功能設置的選項,以獲取照片
第二個函數實際上將獲取它們
//import the Photos framework import Photos //in these arrays I store my images and assets var images = [UIImage]() var assets = [PHAsset]() fileprivate func setPhotoOptions() -> PHFetchOptions{ let fetchOptions = PHFetchOptions() fetchOptions.fetchLimit = 15 let sortDescriptor = NSSortDescriptor(key: "creationDate", ascending: false) fetchOptions.sortDescriptors = [sortDescriptor] return fetchOptions } fileprivate func fetchPhotos() { let allPhotos = PHAsset.fetchAssets(with: .image, options: setPhotoOptions()) DispatchQueue.global(qos: .background).async { allPhotos.enumerateObjects({ (asset, count, stop) in let imageManager = PHImageManager.default() let targetSize = CGSize(width: 200, height: 200) let options = PHImageRequestOptions() options.isSynchronous = true imageManager.requestImage(for: asset, targetSize: targetSize, contentMode: .aspectFit, options: options, resultHandler: { (image, info) in if let image = image { self.images.append(image) self.assets.append(asset) } if count == allPhotos.count - 1 { DispatchQueue.main.async { //basically, here you can do what you want //(after you finish retrieving your assets) //I am reloading my collection view self.collectionView?.reloadData() } } }) }) }
}
根據OP的澄清編輯
您需要設置委託UIImagePickerControllerDelegate
然後實現以下功能
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
中所述方法,得到這樣的形象:
var image : UIImage = info[UIImagePickerControllerEditedImage] as! UIImage
1
我有同樣的問題,首先檢查權限並請求訪問:
let status = PHPhotoLibrary.authorizationStatus()
if status == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
})
}
只需掛鉤即可觸發您的UIImagePickerController。委託調用現在應該在userInfo中包含PHAsset。
guard let asset = info[UIImagePickerControllerPHAsset] as? PHAsset
相關問題
- 1. 使用PHAsset檢索多個圖像
- 2. 如何複製PHAsset?
- 3. 如何使用PHAsset
- 4. PHAsset,應用程序重新啓動後如何檢索特定PHAsset對象(ios8 Photos)
- 5. 從PHAsset獲取縮略圖
- 6. PHAsset UIImage
- 7. 如何正確檢測PHAsset的文件類型(GIF)
- 8. 如何從RadNumericTextBox檢索值
- 9. 如何從IMEI檢索TAC?
- 10. 如何檢索我們從
- 11. 如何檢索從MongoDB的
- 12. 如何從QVariant檢索QPair?
- 13. 如何從ParseUser檢索authData?
- 14. 檢查PHFetchResult中是否存在PHAsset
- 15. UIImagePickerController快門檢測
- 16. 如何從Google檢索搜索片段?
- 17. 從控制器檢索索賠 - 如何?
- 18. 如何從DataGridCellInfo檢索行索引
- 19. 如何將PHAsset轉換爲UIImage Objective-C
- 20. 如何知道PHAsset是否被修改?
- 21. 如何從UIImagePickerController獲取PNG表示?
- 22. 照片框架 - 如何從PHAsset獲取CLLocation圖像?
- 23. 如何通過UIImagePickerController使用新的PHAsset的東西獲取iOS上的全圖像URL
- 24. 如何重用UIImagePickerController?
- 25. 如何「簡化」UIImagePickerController
- 26. 將圖像從PHAsset加載到Imageview中
- 27. 可以從庫的PHAsset獲取圖像
- 28. 獲得空的結果試圖從PHAsset
- 29. 如何從檢查索引中檢索術語列表?
- 30. 如何在檢索一個值之後從列中檢索值
我想要從我從的UIImagePickerController –
得到的圖像我編輯我的答案 –
的PHAsset我不能相信這樣做的唯一途徑是獲取整個照片庫,然後枚舉每一張照片! –