AQGridViewでinsertItemsAtIndicesを呼び出すと、アイテムは関連するグリッドに表示されるのではなく、オーバーラップしています。GridViewでreloadDataを呼び出すと正常に機能しますが、一度に1つのセルを追加するだけです。
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]];
}
そして、これがどのように見えるかです:
ご覧のとおり、画面上で2つのAQGridViewを使用しています。それが問題を引き起こしているのだろうか?どんな助けでも大歓迎です。ありがとう!