Apple公式サイトから「IKImageKit Demo」という名前のIKImageBrowserViewサンプルをダウンロードします。
しかし、私は問題を見つけました。
例えば:
「A」という名前のフォルダーから画像をインポートすると、画像が削除されます。
次に、他の画像(削除された画像と同じ名前)、サムネイルをインポートします
IKImageBrowser は変更されません。
どうすればこの問題を解決できますか?? ありがとう!
Apple公式サイトから「IKImageKit Demo」という名前のIKImageBrowserViewサンプルをダウンロードします。
しかし、私は問題を見つけました。
例えば:
「A」という名前のフォルダーから画像をインポートすると、画像が削除されます。
次に、他の画像(削除された画像と同じ名前)、サムネイルをインポートします
IKImageBrowser は変更されません。
どうすればこの問題を解決できますか?? ありがとう!
内部キャッシュ IKImageBrowserView が ImageUID でサムネイルを検索するというリファレンスを見つけました。そのため、データ ソースが返す ImageUID を単なるファイル名 (おそらくファイル名 + ファイル サイズ) 以外のものに変更すると、別の画像として扱われます。
IKImageBrowserItem プロトコルの imageVersion メソッドを見てください。IKImageBrowserView にアイテムの画像が変更されたことを知らせる必要がある場合は、imageVersion をインクリメントできます。これにより、ビューはキャッシュされた画像を強制的に更新します。
更新:うわー、古い投稿。私が投稿してからしばらくして、ドキュメントが更新されたようです。他の回答が示唆するように、画像をインクリメントしてimageVersion
キャッシュから画像を更新する必要があるようです。
IKImageKit
この問題を 3 時間近く考えた後 (私が始めてから、私も本当に頭を悩ませていました!)、画像の処理方法のバグであるという悲しい結論に達しました。IKImageBrowserView
画像とサムネイルのキャッシュがあり、私が持っている実験データから、画像データではなくディスク上の場所に基づいて画像をキャッシュしているだけだと推測しています(データを遅延してロードできるように、私は推測します)、そのため、実際の画像データが変更される可能性がある場合でも、同じファイルの場所を再読み込みしても画像自体は更新されません。
もちろん、私は完全に間違っている可能性があります-問題に関するドキュメントは文字通り存在しないため、驚くことではありません.Instrumentsとアプリ自体からの結果しか得られませんが、あなたへの私のアドバイスは無視することです.それについてあなたができることは何もないので、今のところ問題を解決し、おそらく Apple にバグを報告してください。
もちろん、誰かがこれについて他の証拠を紹介できるなら、してください! 詳しく知りたいです。
幸運を!
imageVersion を更新するか、パスのイメージに名前を付ける必要があります。「1.png」という名前の画像を配置した後に「1.png」という名前の画像を削除すると、画像ブラウザー ビューには前の画像が表示されるため、画像の名前付けに注意する必要があります。または imageVersion メソッド。