iOSの

2017-02-26 7 views
-1

Plese refer to this piciOSの

に同じUICollectionViewで画像やビデオをロードするためにはどのようにタイムスタンプに基づいて、カメラロールからすべての画像および動画を表示することができます1つのコレクションビューを持ってしようとしています。

画像のみを読み込むことも、両方を読み込むこともできません。

我々は唯一のビデオコレクションや画像コレクションを求めることができるオプションを定義するときに、コード切り取ら上で見ることができるように私は、コード

 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 
     } 

の下に試してみました。

どうすれば両方を組み合わせることができますか? 注:私は開発提案の任意の種類のために開いていると回避策として、私は1つのコレクションでPHFetchResultに結合し、私のコレクションビューにデータを入力しています。

これが唯一の方法ですか?またはアップルは同じものの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

(type == Image AND type == Movie)が空のセット、つまりゼロアイテムであることが保証されているため、おそらくOR述語が必要です。 'NSCompoundPredicate(orPredicateWithSubpredicates:[videoPredicate、imagePredicate])'を試してください。 – prewett