2009-12-09 88 views
1

在我的應用程序中,我最初只會在UITableView上顯示一行。我想在用戶用數據加載前一行時增加行(這裏是一個uiimage)。就像現在我返回值1,在numberOfRowsInSection:方法中一樣,因爲我不知道如何以所需的方式實現它。請幫忙。向UITableViewCell添加新行

cellForRowAtIndexPath:方法是

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CustomCellIdentifier = @"CustomCellIdentifier"; 

    CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CustomCellIdentifier ] autorelease]; 

     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];  
     for (id currentObject in nib){ 
      if ([currentObject isKindOfClass:[CustomCell class]]){ 
       cell = (CustomCell *)currentObject; 
       cell.viewController = self; 
       break; 
      } 
     }   
    } 
    if (j<15){ 
       cell.imageView.image = nil; 
     if (count!=0) 
     { 
      @try{ 
       NSInteger row = [indexPath row]; 
       cell.imageView.image = [array objectAtIndex:row]; 
        } 
      @catch (NSException* ex) { 
       NSLog(@"doSomethingFancy failed: %@",ex); 
      } 
     } 
    } 
    cell.showsReorderControl = YES; 
     return cell; 
    [array release]; 
} 

,如果條件和次數也不過只是爲了檢查可變數組,「陣」的正確運行。

回答

0

當你到達cellForRowAtIndexPath在一定indexPath,這意味着正在顯示的行。如果你到達最後一行,你可以在表格中插入一個新行。要做到這一點,你只需要增加tableView:numberOfRowsInSection函數返回的計數。

我猜你的numberOfRowsInSection功能會是這個樣子:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return section==0 ? [array count] : 0; 
} 

所以基本上,裏面的cellForRowAtIndexPath,添加以下代碼:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    ... 

    if([indexPath row]==[array count]-1) { 
     [array addObject:(NEXT_IMAGE)]; 
    } 
    return cell; 
} 

您還需要刷新表。一種方法是隻是調用reloadData在你的UITableView,但最好的方法是調用beginUpdates/insertRowsAtIndexPaths/endUpdates在桌子上,這樣就可以顯示出該行的一個漂亮的動畫插入。