1

最大数百のセルを持つことができるコレクション ビューがある iOS アプリがあります。各セルには、4 つの UILabels と 1 つの UIImageView の 5 つのビューがあります。アプリを通常どおり実行すると、数行スクロールするたびに、アプリは途方もない量のメモリを使用します。3行で約5Mbのメモリのように。コレクション ビュー コントローラーが次のようになるように、cellForItemAtIndexPath 内のすべてのコードを削除してみました。

    #import "CollectionView.h"

    @implementation CollectionView

    - (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
        return 100;
    }

    - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Story_Cell_Small";
Cell *cell = [cv dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
    }

    @end

それでも、アプリはスクロール時に途方もない量のデータを使用します。セルのストーリーボード ビューを開いてセル内のすべてのビューを削除し、Instruments でアプリのメモリ使用量を再度測定したところ、空のセルをスクロールしてもメモリ使用量はありませんでした。実際には、スクロール バーの移動に基づくセルであることがわかりました。

つまり、セル内のビューは、アプリのストーリーボードのセルに配置することを何も受け入れずに、大量のメモリを使い果たしているということです。

私の質問は、どうすればこれを修正できますか? 私はばかげて間違ったことをしていますか?

4

1 に答える 1