我实施了我的计划如下。
- (IBAction) toolbarOption:(UIBarButtonItem *)sender
{
switch ([sender tag]) {
case 0:
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
break;
case 1:
for (int i=0; i< [array count]; i++)
{
label02.hidden = YES;
label03.hidden = YES;
label01.text = [array objectAtIndex:i];
order.text = [NSString stringWithFormat:@"%i of %i", i+1,[array count]];
NSDictionary *pronunciation = [[SingletonHandle getHandle] getPronunciationPlist];
label02.text = [pronunciation objectForKey:label01.text];
label03.textColor = [UIColor redColor];
label03.text = [meaning objectForKey:label01.text];
[self performSelector:@selector(showButton:) withObject:nil afterDelay:2.0];
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:nil selector:@selector(showButton:) userInfo:pronunciation repeats:NO];
[timer fire];
}
break;
default:
break;
}
-(IBAction)showButton:(id)sender
{
label02.hidden = NO;
label03.hidden = NO;
nextButton.hidden = NO;
previousButton.hidden = NO;
order.hidden = NO;
}
...
我想将label.text
显示为int i随时间延迟而变化,但它不起作用。它只显示了我的最后一个label.text
。我想使用label.text
查看每个NSTimer
的时间延迟。
提前谢谢。
答案 0 :(得分:1)
您可以将NSTimer用作
theTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f
target:self
selector:@selector(updateTimer:)
userInfo:nil
repeats:YES];`
您可以在func中更新标签
- (void)updateTimer:(NSTimer *)theTimer {
//static int countTime = 0;
countTime += 1;
_timeOver=_timeOver-1;
NSString *s = [[NSString alloc] initWithFormat:@"Time left: %d", (_timeOver)];
self._myTimeCounterLabel.text = s;
[s release];
if (_timeOver==0) {
[self checkIfGameOver];
}
}
答案 1 :(得分:0)
试试这个,
NSTimer *aTimer = [NSTimer timerWithTimeInterval:(3.0) target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];
NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:aTimer forMode: NSDefaultRunLoopMode];
计时器操作
- (void)updateTimer:(NSTimer *)theTimer {
//static int countTime = 0;
countTime += 1;
_timeOver=_timeOver-1;
NSString *s = [[NSString alloc] initWithFormat:@"Time left: %d", (_timeOver)];
self._myTimeCounterLabel.text = s;
[s release];
if (_timeOver==0) {
[self checkIfGameOver];
}
}