ゲーム作成時等,カウントアップタイマーの需要は高いはず。
実際自作のiPhoneゲームにも実装しています。
1.StoryBoardでビューにラベルを貼り付ける
2."ViewController.h"に下記コードを追加
@interface ViewController : UIViewController { NSTimer *_timer; NSDate *_stdate; NSDate *_now; BOOL _timeflg; } //timer @property (weak, nonatomic) IBOutlet UILabel *countUpTimer;
3."ViewController.m"に下記コードを追加
//timer @synthesize countUpTimer = _countUpTimer;
-(void)viewWillAppear:(BOOL)animated { [super viewWillAppear:YES]; [self CountUp]; } //Timer -(void)CountUp { _timer = [NSTimer scheduledTimerWithTimeInterval:(0.001) target:self selector:@selector(onTimer:) userInfo:nil repeats:YES]; _timeflg = YES; _stdate = [[NSDate alloc]init]; } - (void)onTimer:(NSTimer*)timer { if(_timeflg){ _now = [NSDate date]; self.countUpTimer.text = [NSString stringWithFormat:@"%.3f", [_now timeIntervalSinceDate:_stdate]]; } }
4.再びStoryBoardで,ビューの下にあるビューコントローラアイコンをCtrlキーを押しながらマウスで押し,そのままLabelまでドラッグする。
すると,下記ポップアップが現れるので,"countUpTimer"をクリックする。
これでカウントアップされるはずです。
ちなみに,引数scheduledTimerWithTimeIntervalの値0.001は,0.001秒ごとにonTimerメソッドの処理を行うという意味なので,動作が重くなるなど弊害があれば0.01とかにかえたほうが良いかもしれません。
0 件のコメント:
コメントを投稿