0

配列productsArray内のすべてのアイテムを表示するgridViewを作成しました。この配列は、カスタム クラス タイプ Products のオブジェクトを保持します。以下に示す関数は、製品オブジェクトからの情報を使用してビューの配列を作成しています。ここで、親の製造元に基づいて製品をフィルター処理したいと考えています。

-(NSArray*)arrayOfObjectToBeAddedToGriView{
    NSMutableArray* productsScrolLViewItemsArray = [[NSMutableArray alloc] init];
    for (Products* product in productsArray){
            ProductScrollViewItem* productScrollViewItem = [[ProductScrollViewItem alloc] initWithFrame:CGRectMake(0,0,0,0) withProduct:product];
            [productScrollViewItem addTarget:self action:@selector(productInGridViewTapped:) forControlEvents:UIControlEventTouchUpInside];
            [productsScrolLViewItemsArray addObject:productScrollViewItem];
    }
    return (NSArray*)productsScrolLViewItemsArray;
}

メーカーによるフィルタリング

-(void) filterBasedOnManufacturer:(Manufacturer*)selectedManufacturer{
     [productsArray removeAllObjects];
     [productsArray addObjectsFromArray:[selectedManufacturer.productsForManufacturer allObjects]];
     // relod the gridView with filtered products
    [productCatalogueGridView reloadItems:[self arrayOfObjectToBeAddedToGriView]];
}

productScrollViewItem は、ImageView と 2 つのラベルを持つサイズ 100,100 の小さなビューです。ここでの私の懸念は、フィルタリングされた Products オブジェクトに対して毎回すべての productScrollViewItem を再初期化していることです。ProductsArray と productScrollViewItemArray の両方を除外した方がよいのか、それとも再初期化するビューが非常に小さいため問題ではないのか疑問に思っています。ありがとう。

4

1 に答える 1

0

iOS>=6 をターゲットにしている場合は、UICollectionView を使用できます。それらは、Vie を再作成するオーバーヘッドを回避するために、まさに必要なことを行い、セルを再利用します。それらはUITableViewsにかなり近いです。もう 1 つの解決策は、いくつかの共有プロパティを見つけるか、独自のリサイクル バイス メカニズムを構築することです。

于 2013-03-30T09:08:30.397 に答える