ゲーム作成時等,カウントアップタイマーの需要は高いはず。
実際自作の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 件のコメント:
コメントを投稿