如何在UITableView中重新加载数据

时间:2012-04-23 06:03:25

标签: iphone objective-c ios uitableview

我正在使用UITableView使用Web服务显示内容。我需要每分钟重新加载一次数据。任何人都可以帮我做这件事......

7 个答案:

答案 0 :(得分:4)

有两个问题:

1)如何重新加载UITableView个细胞?

2)如何每60秒自动完成一次?

我的回答:

1)要手动重新加载数据,您应该在UITableView实例上有指针。您可以使用@propertyIBOutlet将表与此属性相关联来执行此操作。假设您将其命名为tableView。然后你可以调用[tableView reloadData];来重新加载表格的所有单元格和部分。

2)最简单的方法是创建NSTimer,每60秒触发一次并调用特定方法。例如:

[NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(updateTable) userInfo:nil repeats:YES];

P.S。您还可以重新加载表格视图的特定单元格或部分。请在Apple Docs中搜索他们

答案 1 :(得分:1)

编写一个方法,其中包含从Web服务加载数据并调用[tableView reloadData]的代码。然后创建一个timer并让它每分钟调用一次方法。

答案 2 :(得分:1)

您需要在ViewdidLoad View of View Controller

中设置1分钟的NSTimer
- (void)viewDidLoad
{
NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(reloadTable) userInfo:nil repeats:YES];
}

//重新加载表格方法

-

(void)reloadTable{
 [self.tableView reloadData];
[myTimer invalidate];

}

答案 3 :(得分:1)

[NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(TblUpdate) userInfo:nil repeats:YES];

-(void)TblUpdate
{

//Your Webservice

//table reload
    [tbl reloadData];
}

答案 4 :(得分:0)

尝试:

 /*****TIMER*****/
timer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(updateTable) userInfo:nil repeats:YES];


/******************************************************************************/
-(void)updateTable{
   [self.tableView reloadData];

}

答案 5 :(得分:0)

你可以使用Halley的答案,或者你可以让计时器调用reloadData到tableview本身。

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self.tableView selector:@selector(reloadData) userInfo:nil repeats:YES];

答案 6 :(得分:0)

您需要每次检查您的数据模型。只是用一些间隔重新加载具有相同数据的表视图并不是一个好主意。对吗?

timer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(updateData) userInfo:nil repeats:YES];

-(void)updateData {
  //do something with data model
  //and reload table then
  [self.tableView reloadData];
 }