2013-01-14 91 views
0

當我在AQGridView上調用insertItemsAtIndices時,項目重疊,而不是顯示在其相關的網格中。它工作正常,如果我在GridView上調用reloadData,但我想一次只添加一個單元格。AQGridView insertItemsAtIndices項目重疊

我有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。我想知道這是否會導致問題?任何幫助表示讚賞。謝謝!

回答

0

好吧,剛剛解決它。通過代碼搜索,我發現下面被稱爲在reloadData:

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

所以,現在我打電話reloadData之前,我添加任何東西給它。