AQGridView insertItemsAtIndices项重叠

时间:2013-01-14 17:20:21

标签: ios ipad aqgridview

当我在AQGridView上调用insertItemsAtIndices时,这些项重叠,而不是显示在相关的网格中。如果我在GridView上调用reloadData,它工作正常,但我想一次只添加一个单元格。

我实现了portraitGridCellSizeForGridView,但在插入调用后似乎没有调用它。

以下是要插入的相关代码:

[self.cartItemArray addObject:cartItem];

[self.cartGridView beginUpdates];

[self.cartGridView insertItemsAtIndices:[NSIndexSet indexSetWithIndex:self.cartItemArray.count - 1] withAnimation:AQGridViewItemAnimationNone];

[self.cartGridView endUpdates];

这是AQGridView委托方法:

- (NSUInteger)numberOfItemsInGridView:(AQGridView *)gridView {

return _cartItemArray.count;

}

- (AQGridViewCell *)gridView:(AQGridView *)gridView cellForItemAtIndex:(NSUInteger)index {

static NSString * GridCellIdentifier = @"CartItemListViewCell";

CartItemListViewCell_iPad * cell = (CartItemListViewCell_iPad *)[gridView dequeueReusableCellWithIdentifier:GridCellIdentifier];

if (!cell) {
    CGRect cellFrame = CGRectMake(0, 0, _cellWidth, _cellHeight);
    cell = [[CartItemListViewCell_iPad alloc] initWithFrame:cellFrame reuseIdentifier:GridCellIdentifier];
}

CartItem *cartItem = [_cartItemArray objectAtIndex:index];

[(CartItemListViewCell_iPad*)cell updateCartItem:cartItem];

return cell;

}


- (CGSize)portraitGridCellSizeForGridView:(AQGridView *)gridView {

return CGSizeMake(_cellWidth, _cellHeight);
}

- (void)gridView:(AQGridView *)gridView didSelectItemAtIndex:(NSUInteger)index {

if (index >= _cartItemArray.count){
    return;
}

self.selectedItemIndex = index;

[[NSNotificationCenter defaultCenter] postNotificationName:NotificationEditPrintSizeCartItem object:[_cartItemArray objectAtIndex:index]];

}

这就是它的样子:

Example of cells overlapping

正如您所看到的,我在屏幕上使用了两个AQGridView。我想知道这是否会导致问题?任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

好的,刚刚解决了。在搜索代码时,我注意到在reloadData中调用了以下内容:

[_gridData setDesiredCellSize: [_dataSource portraitGridCellSizeForGridView: self]];

所以,现在我在添加任何内容之前调用reloadData。