-2

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

4

7 回答 7

4

有两个问题:

1)如何重新加载UITableView单元格?

2)如何每60秒自动执行一次?

我的回答:

1)要手动重新加载数据,您应该在UITableView实例上有指针。您可以使用@property并将IBOutlet您的表与此属性连接起来。假设您命名它tableView。然后你可以打电话[tableView reloadData];重新加载表格的所有单元格和部分。

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

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

PS您也可以重新加载表格视图的特定单元格或部分。请在 Apple Docs 中搜索它们

于 2012-04-23T06:09:47.400 回答
1
[NSTimer scheduledTimerWithTimeInterval:60 target:self selector:@selector(TblUpdate) userInfo:nil repeats:YES];

-(void)TblUpdate
{

//Your Webservice

//table reload
    [tbl reloadData];
}
于 2013-04-02T09:40:31.113 回答
1

您需要在 View Controller 的 ViewdidLoad 方法中设置 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];

}
于 2012-04-23T06:23:25.960 回答
1

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

于 2012-04-23T06:06:30.753 回答
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];
 }
于 2012-04-23T06:21:57.597 回答
0

尝试:

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


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

}
于 2012-04-23T06:09:50.117 回答
0

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

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self.tableView selector:@selector(reloadData) userInfo:nil repeats:YES];
于 2012-04-23T06:10:01.860 回答