0

textFieldShouldReturnユーザーは、メソッドが呼び出されるたびに新しいテーブル セルを作成します。そのセルにタイマーをサブタイトルとして追加して、すべてのセルに異なるタイマーが設定されるようにします。タイマーが切れたら、セルを破壊する必要があります。

私はここで道順を探しているだけですが、どのように行けばよいと思いますか?

4

1 に答える 1

0

これを行う簡単な方法の 1 つは、CountDown クラスと CountDownDelegate プロトコルを作成することです。

CountDown クラスは、応答してタイマーを処理し、カウントダウンが 0 に達したときにデリゲートのメソッドを呼び出します。countDownDidReachesZero:(CountDown *)countDown

次に、UIViewController (または UITableViewController) はカウントダウンのリストを配列に保持し、CountDownDelegate に準拠します。

- (void)countDownDidReachesZero:(CountDown *)countDown
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array removeObject:countDown];
self.countdowns = array; //if property is set with copy flag
[self.tableView reloadData]; // get index and remove cell with effect would be better
}

- (BOOL)textFieldShouldReturn:(UITextField*)textField
{
NSMutableArray *array = [self.countdowns mutableCopy];
[array addObject:[[CountDown alloc] init]];
self.countdowns = array;
[self.tableView reloadData]; //or add the cell with effect
return YES;
}

detailLabel.text を更新するには、CountDownDelegate プロトコルでも実行できます。すべての countDown を更新する静的な NSTimer を 1 つだけ持つことをお勧めします。

于 2013-10-15T13:51:04.560 に答える