自动刷新UITableView帮助

时间:2010-04-19 19:22:19

标签: iphone objective-c cocoa-touch uitableview ipad

我正在尝试每隔30秒刷新一个带有新单元格的UITableView。我的数组包含30个元素,对于我添加到数组中的每个新项目,我想删除表格中的最后一个单元格。我怎么能这样做呢?

1 个答案:

答案 0 :(得分:6)

要每30秒刷新一次,请使用NSTimer。

NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:30
                           target:self selector:@selector(refreshTable)
                         userInfo:nil repeats:YES];

-refreshTable中添加该新项目。确保您的dataSource和表格同步。

-(void)refreshTable {
   ...
   // modify the data source.
   [items removeLastObject];
   [items insertObject:newItem atIndex:0];

   // modify the table.
   [tableView beginUpdates];
   [tableView insertRowsAtIndexPaths:
      [NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]]
                    withRowAnimation:withRowAnimation:UITableViewRowAnimationRight];
   [tableView deleteRowsAtIndexPaths:
      [NSArray arrayWithObject:[NSIndexPath indexPathForRow:29 inSection:0]]
                    withRowAnimation:UITableViewRowAnimationFade];
   [tableView endUpdates];
   ...
}

有关如何执行批量插入和删除的信息,请参阅Table View Programming Guide for iPhone OS