在iphone的TableView中动态添加一行

时间:2009-10-26 05:48:00

标签: iphone row tableview

当我在表格中选择一行时,我需要在tableview中添加一个新行。

我想使用以下方法???

- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

我在方法中写了什么来添加新行。?

请帮助我,

提前致谢 世斌。

4 个答案:

答案 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];

}