このタスクについてはどうすればよいですか?基本的には、私はUITableViewの中にリストされた "秒int"の配列を持っています。だから、どうすればカウントダウンに秒数をゼロに割り当てることができますか?私が見ている可能性のある問題は、セルがまだ作成されていないときにタイマーが更新されないことです。そして、異なるUIエレメントを更新する複数の独立したNSTimersをどのようにインスタンス化するのですか?私はここでかなり失われているので、どんな提案も大歓迎です。視覚的な目的のために、私はこのような何かをしたい:uitableview内の複数のカウントダウンタイマー
5
A
答えて
8
画像からは、あなたのモデルがユーザーが取る予定の一連の動作であるように見えます。
1)MyActionは、名前と期日付きのNSObjectです。 MyActionはこのような何かを実装:
- (NSString *)timeRemainingString {
NSDate *now = [NSDate date];
NSTimeInterval secondsLeft = [self.dueDate timeIntervalSinceDate:now];
// divide by 60, 3600, etc to make a pretty string with colons
// just to get things going, for now, do something simple
NSString *answer = [NSString stringWithFormat:@"seconds left = %f", secondsLeft];
return answer;
}
2)StatusViewControllerがMyActionsのNSArrayのあるモデルにハンドルを保持し、それはまた、時間が通過していることを伝えますNSTimer(一つだけ)があります。
// schedule timer on viewDidAppear
// invalidate on viewWillDisappear
- (void)timerFired:(NSTimer *)timer {
[self.tableView reloadData];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return self.model.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyAction *myAction = [self.model objectAtIndex:indexPath.row];
// this can be a custom cell. to get it working at first,
// maybe start with the default properties of a UITableViewCell
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [myAction timeRemainingString];
cell.detailTextLabel.text = [myAction name];
}
0
はそのような表に派手なUIのものを持っているために、あなたはのUITableViewCellのサブクラスを作成し、各プロパティとしてタイマーを作成することもできます。セルは、TimerWentOffに応答し、アラームや通知などの呼び出しを処理するデリゲートを所有できます。各タイマーは、セル内のラベルを更新します。
ほんの少し役に立ちます。より具体的な質問がある場合は、教えてください。
+0
ありがとうございます!カスタムセルを作成することは問題ありません。私はすでにそれを持っています。だから、この部分は "セルは、代理人を所有することができます"これは、カウントダウンタイマーを作成する部分ですか? nstimersを配列に入れて、セル内のラベルを更新する1つのメソッドにアクセスする必要がありますか? – Diffy
関連する問題
- 1. 複数のカウントダウンタイマー+ボタン
- 2. UITableViewの複数の画像
- 3. UITableViewの複数のプロトタイプセル?
- 4. UITableViewの複数の列
- 5. UITableview内の複数のスイッチの値を変更する
- 6. 複数のカスタム行UITableView?
- 7. のUITableViewプッシュセグエが複数回
- 8. C#windowsアプリケーションフォームで複数のカウントダウンタイマーを作成する方法は?
- 9. Swiftで複数のカウントダウンタイマーを作成する
- 10. PHPループを使用する複数のカウントダウンタイマー
- 11. 複数の列を持つUITableView用の複数の列ヘッダー
- 12. XcodeのUIテスト - 複数のUITableView
- 13. UITableViewに複数のUIPickerViewを持つ複数のUITextフィールド
- 14. 複数チョイスiPhoneアプリ - UITableView?
- 15. 長いセクションの複数チェックUITableView
- 16. UITableView内のプレースホルダセル
- 17. uitableview内のUiwebview
- 18. UINavigationController内のUITableView
- 19. UITableView内のUITextField
- 20. カウントダウンタイマー
- 21. カウントダウンタイマー
- 22. IOS:UITextField + UITcrollView内のUITableView
- 23. ココアタッチ - ビュー内のUITableView
- 24. 複数のセクションを持つUITableViewの合計行数
- 25. ココアのカウントダウンタイマー
- 26. iPhoneのカウントダウンタイマー
- 27. OpenGLのカウントダウンタイマー
- 28. セッションタイムアウトのjavascriptカウントダウンタイマー
- 29. JavaScriptのカウントダウンタイマー
- 30. C#のカウントダウンタイマー
ありがとう!このラベル(cell.textLabel.text = [myAction timeRemainingString];)はどのように毎回更新されるのですか?あなたは毎秒それをどのように呼びますか? – Diffy
np。ビューコントローラをテーブルの「デリゲート」と「データソース」に設定します。ティックが発生すると、テーブルにデータの再読み込みを依頼します。テーブルは残りの部分を処理します。それは、ロードする必要があるセル数と、各セルを構成するかを尋ねるコールバックです。 – danh
大丈夫私はそれを働いて..今(NSString *)timeRemainingStringメソッドを(NSString *)timeRemainingString:(NSTimeInterval)secondsRemainingに変更しようとしているので、固定値の代わりに秒の配列を渡すことができます。テーブルがリロードされるたびに1秒を差し引くように、その値の参照を保持するにはどうすればよいですか? – Diffy