Как загрузить изображения и видео в том же UICollectionView в iOS
Я пытаюсь иметь один вид коллекции, который может показать все изображения и видео с камеры в зависимости от отметки времени.
Я могу загружать только изображения или только видео, но не оба.
я пробовал ниже код
var photos: PHFetchResult<PHAsset>! // user photos array in collectionView for disaplying video thumnail
func getAssetFromPhoto() {
let options = PHFetchOptions()
options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: true) ]
options.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.video.rawValue)
photos = PHAsset.fetchAssets(with: options)
print(photos)
photoCollectionView.reloadData() // reload your collectionView
}
Как видно из приведенного выше фрагмента кода, при определении параметров мы можем запрашивать только коллекцию видео или коллекцию изображений.
Как я могу объединить их обоих. Обратите внимание: я открыт для любых предложений по разработке, и в качестве обходного пути я объединяюсь с PHFetchResult в одну коллекцию и заполняю представление моей коллекции.
Это единственный способ? или Apple предоставляет API для того же.
1 ответ
Вы пытались создать и предикат AND?
let videoPredicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.video.rawValue)
let imagePredicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
let predicate = NSCompoundPredicate(andPredicateWithSubPredicates: [videoPredicate, imagePredicate])
options.predicate = predicate
Или даже не предоставляя предикат вообще. Предикат используется для фильтрации результатов. Если вы не хотите фильтровать результаты, просто не используйте предикат.