13

ALAssetLibrary を使用してアルバム ピッカーとイメージ ピッカーを作成するカスタム イメージ ピッカーを持つアプリがあります。お客様が複数の画像を選択できるように、カスタム ピッカーを実装しました。このイメージ ピッカーは iOS 7 でうまく機能し、ユーザーのすべての写真を含む「カメラ ロール」アルバムを表示します。ただし、iOS 8 で同じアプリを実行すると、Apple は「カメラ ロール」アルバムをアルバム ビューから削除し、「最近の写真」のみを表示するようです。私が見る限り、iOS 8 ですべての写真にアクセスする唯一の方法は、コレクション ビュー (写真アプリまたは新しいビルトイン ピッカー) を使用することです。残念ながら、まだ iOS 6 および 7 ユーザーをサポートする必要があるため、現時点では Photokit を使用できません。

アップデート

上記の最初の投稿で述べたように、最初は新しい Photos Framework (PhotoKit) を使用できませんでした。しかし、最近ビルドを Xcode 6 に移行したので、写真フレームワークを使用してすべての写真のグループを作成できるようになりました (これを行う方法については、WWDC ExampleappusingPhotosframework サンプル コードを参照してください)。

ただし、PhotoKit は強力であると誰もが言っているように、重要なフィルタリング機能がいくつか欠けています。実際、PHFetchResult の述語を使用して、元の「PhotoStream」内の写真を簡単に除外する方法はありません。パブリック プロパティのみを使用できます。幸いなことに、PHAsset の説明を使用してそれらをフィルター処理する方法を見つけました。写真がユーザーのフォトストリームにある場合、説明に記載されている assetSource キーは 2 です。そのため、結果に対して高速列挙を使用し、asset.description プロパティで単純な stringInRange フィルターを使用して ("assetSource=2" を探します)、すべてのアセットを PhotoStream にない配列に移動しました。これは最善の解決策ではないかもしれませんが、今のところ機能しているため、ユーザーはローカル ライブラリとフォトストリームの両方から写真の重複を見ることはありません。

ぜひとも、誰かが述語を使用してより良い解決策を持っている場合は、lmkしてください。

4

2 に答える 2

4

私は同じ問題を抱えています。アセット ライブラリがこれらの写真にアクセスできなくなったことを示す適切なドキュメントは見つかりませんでしたが、iOS 8 のリリース ノートには、そのために PhotosFramework を使用できると記載されています。まだテストしていません。

Photos フレームワーク (Photos.framework) は、Photos アプリによって管理される iCloud Photos アセットを含む、写真とビデオのアセットを操作するための新しい API を提供します。このフレームワークは、Assets Library フレームワークよりも優れた代替手段です。

多分それは iOS 8+ でそれを使わなければならないということですか?

更新: すべての写真にアクセスできないのは iOS 8.0 のバグであり、8.0.2 で修正されました。以下の私の他の回答を参照してください。

于 2014-09-22T11:34:32.760 に答える
0

これは単なるバグのようで、iOS 8.0.2 で修正されました (少なくとも私にとっては、イメージ ピッカーですべての写真を見ることができるようになりました)。

このリリースには、次のような改善とバグ修正が含まれています。

[...] 一部のアプリがフォト ライブラリの写真にアクセスできない問題を修正しました。[...]

于 2014-09-26T10:08:04.810 に答える