Asset Loading
이 클래스를 사용하여 이미지, 비디오, 라이브 포토 콘텐츠를 요청할 수 있다.
PHImageManager
An object that facilitates retrieving or generating preview thumbnails and asset data.
: 미리보기 썸네일 및 에셋과 전체 크기의 이미지 또는 비디오 데이터를 검색하거나 생성하는 방법을 제공
class PHImageManager : NSObject
func requestImage(for asset: PHAsset,
targetSize: CGSize,
contentMode: PHImageContentMode,
options: PHImageRequestOptions?,
resultHandler: @escaping (UIImage?, [AnyHashable : Any]?) -> Void) -> PHImageRequestID
requestImage(for:targetSize:contentMode:options:resultHandler:) : 에셋으로부터 실질적인 이미지를 요청
이 메소드는 기본적으로 비동기적으로 실행됨 ➡️ 이미지를 UI에 나타내는 작업은 메인 스레드에서 동작하도록 해야 함
비동기 요청에서, Photos는 result handler block을 두 번 이상 호출할 수도 있다.
Photos는 처음에 고화질의 이미지를 준비하는 동안 저화질의 이미지를 나타내기 위해 block을 호출한다.
고화질 이미지가 준비되면, Photos는 resultHandler를 다시 호출해서 이미지를 제공한다.
만약 고화질의 이미지가 캐시에 이미 있는 경우, handler를 한 번만 호출함!
PHCachingImageManager
An object that facilitates retrieving or generating preview thumbnails, optimized for batch preloading large numbers of assets.
: 많은 에셋을 일괄적으로 미리 로딩하기 위해 최적화된 에셋과 관련 썸네일, 전체 크기의 이미지 / 비디오 데이터를 검색하거나 생성하는 방법을 제공
class PHCachingImageManager : PHImageManager
많은 asset을 가지고 작업을 할 때, Caching Image Manager는 에셋 이미지를 백그라운드에서 준비할 수 있다.
(개별 이미지를 요청할 때, 지연되는 것을 방지하기 위해)
사진이나 비디오 에셋의 썸네일을 사용해 collectionView와 같은 UI를 채울 때, 이를 사용하면 좋음 !
PHCachingImageManager 클래스의 주요 기능은, 대부분 슈퍼클래스인 PHImageManager에 의해 정의된다.
PHImageRequestOptions
PHVideoRequestOptions
PHLivePhotoRequestOptions
PHLivePhoto
'iOS' 카테고리의 다른 글
[iOS] 내비게이션 인터페이스 (0) | 2020.06.09 |
---|---|
[iOS] Photos - Requesting changes to the Photo Library (0) | 2020.06.08 |
[iOS] Photos - 날짜 순으로 에셋 가져오기 (0) | 2020.06.08 |
[iOS] Photos Framework (0) | 2020.06.08 |
[iOS] DispatchQueue로 비동기 프로그래밍 (0) | 2020.06.08 |