質問

私はiOSアプリケーションを開発しており、問題へのアプローチ方法を決定するいくつかの問題があります。

同じデータの異なるビューを表示するために、2つのuitableviewcontrollersを使用しています。 1つはマスターリストであり、もう1つは「お気に入り」としてマークされたアイテムのみが含まれています。また、アイテムはさまざまな高さであるため、各アイテムの高さを示すために「heightForRowAtIndexpath」を使用しています。問題は速度です。あるビューから別のビューに切り替えると、他のビュー(マークされたお気に入り/unfavourite)で行われた変更を表示するために更新する必要があります。

ソリューション#1:

テーブルビューが表示されるたびにデータをリロードします。データは怠zyな読み込みを使用して表示されますが、「heightForRowAtIndexpath」がデータがロードされ、その遅い前にすべてのアイテムに対して呼び出されるため、これはうまく機能しません。私のiPhone 4では、高さの値がキャッシュされていても、約300個のアイテムのリストがロードに約4秒かかります(ボトルネックが高さを適用し、取得しないでください)。

 

ソリューション#2:

変更が行われたときにテーブルを手動で操作します。私はこれを試したことはありませんが、おそらくバギーになるでしょう。あなたの考え?

 

ソリューション#3:

通知タイプシステムを使用して、現在ロードされている可能性のあるアイテムに更新の他のテーブルに通知します。私はこれを試していません。なぜなら、それは上に見えて、まったく機能しないかもしれないからです。

同じデータの2つのビューを表示する簡単な方法を知っている人はいますか?

正しい解決策はありません

他のヒント

reloadrowsatindexpaths:witrowanimationでnowをリロードできます。私はそれをしたことはありませんが、それがより速いのでそこにあると思いますので、あなたはそれを試してみたいと思うかもしれません。

高さの瞬間:Thingy、私はAppleドキュメントで、その機能が実際にパフォーマンスのキラーであることを読んだことを覚えています。おそらく、行の最大高さを取って、それをuitableview.rowheightで設定することができますか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top