当我在表格中选择一行时,我需要在tableview中添加一个新行。
我想使用以下方法???
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
我在方法中写了什么来添加新行。?
请帮助我,
提前致谢 世斌。
答案 0 :(得分:13)
当我动态添加一行时,我使用insertRowsAtIndexPaths:这是一个示例函数
- (void) allServersFound {
// called from delegate when bonjourservices has listings of machines:
bonjourMachines = [bonjourService foundServers]; // NSArray of machine names;
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
int i = 0;
for (NSArray *count in bonjourMachines) {
[tempArray addObject:[NSIndexPath indexPathForRow:i++ inSection:0]];
}
[[self tableView] beginUpdates];
[[self tableView] insertRowsAtIndexPaths:(NSArray *)tempArray withRowAnimation:UITableViewRowAnimationNone];
[[self tableView] endUpdates];
[tempArray release];
}
答案 1 :(得分:2)
如果要从数组填充表格,只需向数组中添加元素并调用[myTable reloadData]
答案 2 :(得分:1)
重新加载数据很简单,但据我所知,它没有动画......
答案 3 :(得分:0)
ReloadData可以在表视图中添加行,但如果你想在行添加时想要一些动画,那么你应该使用这些代码行。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableArray *tempArray = [[NSMutableArray alloc] init];
[tempArray addObject:[NSIndexPath indexPathForRow:indexPath.row+1 inSection:0]];
[mainArray insertObject:@"new row" atIndex:indexPath.row+1];
[[self tableView] beginUpdates];
[[self tableView] insertRowsAtIndexPaths:(NSArray *)tempArray withRowAnimation:UITableViewRowAnimationFade];
[[self tableView] endUpdates];
}