2

我一直在谷歌搜索,但我找不到任何直接的教程或答案,所以我决定问。

我理解并且能够将新行插入到组 uitableview 中insertRowsAtIndexPath:withRowAnimation

我现在想做的不是插入新行,而是插入新部分,每个部分包含 2 行。

我该怎么做,或者我应该研究什么?


我试过的:

一个 NSMutableArray self.objectArray

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return self.objectArray.count;
}

tableView:cellForRowAtIndexPath中,我这样做了:

UITextField *itemNameTextField = (UITextField *)[cell viewWithTag:100];
    NSString *itemName = self.objectArray[indexPath.section][@"itemName"];
    [itemNameTextField setText:itemName];
    [itemNameTextField addTarget:self action:@selector(updateItemName:) forControlEvents:UIControlEventEditingChanged];

我有一个在点击时调用的条形按钮项目addItemBarBtnTapped:

- (IBAction)addItemBarBtnTapped:(id)sender
{
    // Create item object.
    NSMutableDictionary *itemObject = [[NSMutableDictionary alloc] init];
    itemObject[@"itemName"] = [NSString stringWithFormat:@"Item %d", self.billItemsArray.count+1];
    itemObject[@"itemPrice"] = @"0";
    itemObject[@"itemSharersArray"] = [[NSMutableArray alloc] init];

    // Add itemObject to objectArray, which reflects the new number of sections, and reloadData to reflect changes.
    [self.objectArray addObject:itemObject];
    [self.tableView reloadData];
}

这就是我目前正在做的事情,它之所以有效,是因为我看到单元格中 textFields 中的值具有正确的值,例如项目 1、项目 2 等。(这些值设置并存储在addItemBarBtnTapped.

但是,我认为这不是“将部分添加到 tableView”的正确方法,它缺少“动画”,并且我希望每次添加部分时每部分添加 2 行。


我找不到与我的问题相关的答案,也没有任何关于在 Internet 上添加部分的教程,所以我非常感谢你们的帮助!

谢谢!

4

1 回答 1

4

试试这个代码:

 int indexOfNewSection = self.objectArray.count; 
    [self.tableview beginUpdates];
    [self.tableview insertSections:[NSIndexSet indexSetWithIndex:indexOfNewSection]
                  withRowAnimation:UITableViewRowAnimationTop];

    // Update data model
     itemObject[@"itemName"] = [NSString stringWithFormat:@"Item %d", self.billItemsArray.count+1];
        itemObject[@"itemPrice"] = @"0";
        itemObject[@"itemSharersArray"] = [[NSMutableArray alloc] init];
    [self.objectArray insertObject:sectionObj atIndex:indexOfNewSection];

    [self.tableview endUpdates];
于 2013-09-17T06:14:08.227 回答