2009-10-26 14 views
5

Potrzebuję dodać nowy wiersz w widoku tabeli po zaznaczeniu wiersza w tabeli.Dodawanie wiersza dynamicznie w TableView w przypadku iPhone

Czy mam użyć następującej metody ???

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

Co za napisać wewnątrz metody, aby dodać nowy wiersz.?

Proszę mi pomóc,

góry dziękuję Shibin.

Odpowiedz

2

Jeśli napełniania tabelę z tablicy, można po prostu dodać element do tablicy i zadzwonić [myTable reloadData]

+0

Nie, nie ładuję nowych danych wiersza z tablicy. potrzebuję dodać nowy wiersz, gdy wybiorę dowolny konkretny wiersz w tabeli. to po prostu dołącza się do mojego istniejącego stołu. – smakstr

+0

Hmm. I jakie jest źródło zawartości widoku tabeli? – Morion

+1

Można po prostu zmienić liczbę elementów zwróconych przez numberOfRowsInSection i odpowiednio zaktualizować dane zwrócone przez cellForRowAtIndexPath. Następnie wywołaj polecenie reloadData, jak powyżej. –

13

Kiedy dodać wiersz dynamicznie używam insertRowsAtIndexPaths: tutaj jest funkcja przykład

- (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

Odśwież dane są ładne i proste, ale nie animować miarę mogę powiedzieć ...

0

ReloadData można dodać wiersz teble widzenia, ale jeśli chcesz trochę animacji, gdy rząd dodać należy użyć te linie kod.

-(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]; 

} 
Powiązane problemy