我一直在谷歌搜索,但我找不到任何直接的教程或答案,所以我决定问。
我理解并能够使用insertRowsAtIndexPath:withRowAnimation
向组uitableview插入新行。
我现在要做的不是插入新行,而是要插入新的部分,每个部分包含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行,每次添加部分。
我找不到与我的问题相关的答案,也没有关于在互联网上添加章节的任何教程,所以我真的很感谢你们的帮助!
谢谢!
答案 0 :(得分: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];