2016-09-10 8 views
0

このトピックのエントリがこのページにあり、その問題のチュートリアルを提供するWebサイトも見つかりました。しかし、何もうまくいかなかった。テーブルをプリロードしてセルを表示し、再ロードを防止します

チュートリアル悲しい私は自分のtableViewの高さを2倍にする必要があるので、セルは先に読み込まれますが、テーブルビューが高くなると最後のセルには届きません。

私の問題は、私は私のアプリのメインページを表示するtableViewを使用しています。このメインページには、トピックが毎回表示され、そのトピックに必要なものが表示されている場合は、たとえばマップ付きのセル、写真付きのセル、時には表示されないセルが表示されます。問題は、私は私のビューにスクロールしようとすると、常に地図やこの写真をロードするので、遅れている。ロードされたセルが既に削除されているため、再びスクロールします。私はcellType(mapCell、pictureCell、textCell)をオンとオフに切り替える可能性があるため、tableViewを使用しました。

私はこの問題を理解していますが、私の場合はそれほど多くはありませんし、トピックを変更するまで、すべてのセルがプリロードされてメモリに残っている方が良いでしょう。

私のtableViewにこのような振る舞いがあることを伝えてくれる方法はありますか?

おかげでたくさんの素敵な挨拶

答えて

0

は、セル配列を宣言します。

トピックが変更された場合は、次の手順を実行してください。

  1. クリアあなたのアレイ

  2. すべてのセルを作成して構成しているアレイに追加します。

  3. これらのセルを行インデックスを使用してデータソースメソッドに返します。ここではテーブルビューデキューメソッドを使用しないでください。

+0

ああ、私はとても恥ずかしいです!どのくらい簡単でした!本当にありがとう! – kuemme01

+0

これは動作しますが、メモリ効率は良くありません。モデルデータをあらかじめロードし、セルデキューメソッドを使用する方がよい。 –

1

私は別のアプローチを提案します。セルにプレースホルダイメージをインストールするようにテーブルビューコントローラを設定し、ディスクにキャッシュする非同期ダウンロードをトリガし、ダウンロードが完了したときに表示されている場合はダウンロードしたコンテンツでセルを更新します。

このすべてのハウスキーピングを行うさまざまなサードパーティのフレームワークがあります。

+0

はい、別の方法が、私は大丈夫だと思います!私は30から60メガバイトの間のmemoryusageを持っているかそれほどですか? – kuemme01

+0

新しいデバイスでは、30-60MBは問題ではありません。私たちが話しているテーブルビューエントリの数とイメージの大きさはどれくらいですか? –

+0

iOS 9は4秒以上で動作します。これが現在の最低仕様のデバイスです。 iOS 10は4をドロップし、5以上でのみ動作します。 –

関連する問題