我创建了一个gridView,它显示了数组productsArray中的所有项目。此数组包含自定义类类型Products的对象。下面显示的功能是使用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是一个大小为100,100的小视图,带有ImageView和两个标签。我关心的是每次为过滤的Products Objects重新初始化所有productScrollViewItem。我想知道过滤掉ProductsArray和productScrollViewItemArray是否会更好,或者无关紧要,因为我重新初始化的视图是非常小的视图。感谢。
答案 0 :(得分:0)
如果您的目标是iOS> = 6,则可以使用UICollectionView,它们可以完全按照您的需要进行操作,并且可以重复使用单元格,以避免重新创建vies的开销。它们非常接近UITableViews。另一个解决方案是找到一些共享属性或构建自己的回收机制。