我正在使用 UITableView 通过使用 web 服务来显示内容。我需要每分钟重新加载一次数据。任何人都可以帮我做到这一点...
问问题
5705 次
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 回答