私が直面している問題は、一連の画像を縦に並べて追加し、全体をスクロール可能にすることです。画像は 768x768 です。これには UITableView を使用しています。
最初に、次の方法で単一のセルをデキューするだけでそれを実行しようとしました:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
私のデバイスは、そのような画像の垂直方向に 1.5 しか収まらないため、新しい画像が読み込まれるたびに遅延が発生しました。
だから...アプリケーションのロード時に配列内のすべてのセルをキャッシュすることで、単純にテストすると思いました。したがって、セルを取得するための私の方法は次のようになります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
PhotoItemCellController *cell = [imgs objectAtIndex:[indexPath row]];
return cell;
}
ここに奇妙なことがあります:これはすべて、必要に応じて画像を動的にロードするのと同じです-同じラグがあります...しかし...テーブル全体を最後までスクロールすると、テーブルが機能し始めます完璧に (明らかに何らかのキャッシュが発生します)。
- なぜこれが起こるのですか?
- テーブルからセルを「デキュー」するのではなく、セルの配列を使用しているためでしょうか?
- セルに UIImageView が含まれているためでしょうか? たぶん、最初に表示されたときに何かをします。
また、テーブルをスクロールするときにのみ RAM 使用量の急増に気付きます。アプリの起動時にすべてのセルをメモリ内の画像と共に読み込むと、実質的に消費はありません。
任意の考えをいただければ幸いです