iOS、PhotoKit(写真インポート)
🧐 写真から写真を取得する方法を段階的に理解しましょう.
Step 1
Info.plistを設定してください!
Step 2
Photosを入力し、PHassetを受信するpropertyを追加してください.
写真ライブラリの画像、ビデオ、またはLive Photoのメタデータ.
fetchメソッドでインポートした資産セット.
資産をインポートする時間です.アクセス権が許可されている場合、collectionビューをインポートして再ロードするためのaccessPhotos()メソッドを作成しました.
assetを取得する方法.戻り値はPHFetchResultです.
画像を更新します.PHassetは描画データなので、PHImageManagerでデータを取得する必要があります.PHImageManagerプロパティを作成し、CellForItemAtで使用します.
サムネイルとassetデータの検索または作成に使用するオブジェクトをプレビューします.
Apple Developer Documentation
Step 1
Info.plistを設定してください!
Step 2
Photosを入力し、PHassetを受信するpropertyを追加してください.
🍁 PHAsset
写真ライブラリの画像、ビデオ、またはLive Photoのメタデータ.
🍁 PHFetchResult
fetchメソッドでインポートした資産セット.
🍁 ViewController.swift
import Photos
class ViewController: UIViewController {
var photos: PHFetchResult<PHAsset>?
...
}
Step 3資産をインポートする時間です.アクセス権が許可されている場合、collectionビューをインポートして再ロードするためのaccessPhotos()メソッドを作成しました.
🍁 fetchAssets(in assetCollection: options:)
assetを取得する方法.戻り値はPHFetchResultです.
🍁 ViewController.swift
class ViewController: UIViewController {
...
func accessPhotos() {
PHPhotoLibrary.requestAuthorization { [weak self] status in
if status == .authorized {
self?.photos = PHAsset.fetchAssets(with: nil)
DispatchQueue.main.async {
self?.collectionView.reloadData()
}
}
}
}
}
Step 4画像を更新します.PHassetは描画データなので、PHImageManagerでデータを取得する必要があります.PHImageManagerプロパティを作成し、CellForItemAtで使用します.
🍁 PHImageManager
サムネイルとassetデータの検索または作成に使用するオブジェクトをプレビューします.
🍁 ViewController.swift
class ViewController: UIViewController {
...
let imageManager = PHImageManager()
...
}
extension ViewController: UICollectionViewDataSource {
...
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as? Cell else {
return UICollectionViewCell()
}
let asset = photos?[indexPath.item]
cell.representedAssetIdentifier = asset?.localIdentifier
imageManager.requestImage(for: asset!, targetSize: imageSize, contentMode: .default, options: nil) { image, _ in
if cell.representedAssetIdentifier == asset?.localIdentifier {
cell.image.image = image
}
}
return cell
}
}
🧐(詳細については、以下の説明を参照してください!)Apple Developer Documentation
Reference
この問題について(iOS、PhotoKit(写真インポート)), 我々は、より多くの情報をここで見つけました https://velog.io/@idoyoung/iOS-PhotoKit사진가져오기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol