我正在尝试获取有关如何向现有UITableView
添加行的示例代码。我正在尝试使用insertRowsAtIndexPaths:
函数。
[tableView insertRowsAtIndexPaths:addindexes withRowAnimation:UITableViewRowAnimationTop];
有关这些索引如何工作以及如何添加到现有部分的任何想法,或者,如果我没有部分,那么创建一个新部分?
答案 0 :(得分:11)
您必须创建一个索引路径数组 -
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
例如,如果要在第0部分中插入第2行并且在第0部分中已经有1行,则在第0部分为第1行创建索引路径并在表视图上调用insertRowsAtIndexPaths,它将在部分中插入第2行。
如果表视图中没有任何部分,那么你应该使用int作为数据源,在表格视图中没有给出任何部分,在这个用途中 -
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return noOfSection; //here section is as int which is initially zero
}
并且最初你的int“noOfSection”将为零,那么表格中没有任何部分,那么当你想要添加部分时,将你的int值增加1并调用[tableView reloadData];
答案 1 :(得分:6)
如果要在表格视图中插入行和节,则需要处理这些函数。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return noOfSections;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[noOfRows objectForIndex:section] intValue];
}
如果您要更新表视图,建议您使用beginUpdates和endUpdates方法。
这是您插入新行和部分的方式。
noOfSections++;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:3] withRowAnimation:UITableViewRowAnimationTop];
// update your array before calling insertRowsAtIndexPaths: method
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:1 inSection:2]]
withRowAnimation:UITableViewRowAnimationTop];
检查苹果提供的示例代码。