NSTimerを使用して、指定時間後に処理を実行させる方法。
サンプルは、ボタンをタップしたら1秒後に処理を実行するサンプル。
ViewController.m1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| - (IBAction)adjustButton:(UIButton *)sender {
// タイマー処理に引継ぐデータを格納
NSDictionary *userInfo = @{@"duration":_durationField.text,
@"delay":_delayField.text};
// タイマー設定
[NSTimer scheduledTimerWithTimeInterval:1.0 // 1秒後
target:self // 呼び出すメソッドのインスタンス
selector:@selector(doTimer:) // 呼び出すメソッド
userInfo:userInfo // 引き渡すデータ
repeats:NO]; // 繰り返し
}
/// タイマー処理(この形式であること)
- (void)doTimer:(NSTimer *)timer
{
// データの取り出し
float duration = [(timer.userInfo)[@"duration"]floatValue];
float delay = [(timer.userInfo)[@"delay"]floatValue];
// やりたい処理
[self goalAnimationWithDuration:duration andDelay:delay];
}
|