2017-02-26 71 views
-1

Plese refer to this pic如何加載在同一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 

甚至根本不提供謂詞。謂詞用於過濾結果。如果您不想過濾結果,則不要使用謂詞。

+0

我想你的解決方案很好的建議,沒有跨過我的腦海!將返回到投票 –

+0

您可能需要一個OR謂詞,因爲(type == Image AND type == Movie)保證爲空集,即零個項目。試試:'NSCompoundPredicate(orPredicateWithSubpredicates:[videoPredicate,imagePredicate])'。 – prewett

相關問題