Web サービスを使用してコンテンツを表示するには、UITableView を使用しています。毎分 1 回データをリロードする必要があります。これを行うのを手伝ってくれる人はいますか...
7 に答える
2つの質問があります:
UITableView
1)セルをリロードする方法は?
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また、テーブルビューの特定のセルまたはセクションをリロードすることもできます。AppleDocsで検索してください
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];
}
Web サービスからデータをロードして を呼び出すコードを含むメソッドを記述します[tableView reloadData]
。次に、タイマーを作成し、毎分メソッドを呼び出すようにします。
試す:
/*****TIMER*****/
timer = [NSTimer scheduledTimerWithTimeInterval:60.0 target:self selector:@selector(updateTable) userInfo:nil repeats:YES];
/******************************************************************************/
-(void)updateTable{
[self.tableView reloadData];
}
Halleyの回答を使用するか、タイマーでテーブルビュー自体にreloadDataを呼び出すことができます。
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:60 target:self.tableView selector:@selector(reloadData) userInfo:nil repeats:YES];
毎回データモデルを確認する必要があります。一定の間隔で同じデータを使用してテーブル ビューを再読み込みするのは得策ではありません。右 ?
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];
}