NSTIMER似乎被忽略了

时间:2013-06-18 15:32:10

标签: ios nstimer

我创建了一个程序,发现了一个我似乎无法解决的错误。

我已经解决了这个问题,无法在一个全新的项目中重新创建,但它仍然会重现。

问题是当我按下BUTTON时图像发生变化但速度比NSTIMER中设置的速度快得多,但只是第一次按下按钮。

如果我继续按下按钮,图像会以我需要的速度变化。

它只会在第一次发生时发生,我正在使用触摸事件(尽管我已经尝试过触摸内容)

这仅在第一次发生,并且非常重要,第一次与其余时间相同。

我知道有关NSTIMER准确性的各种讨论,但我不认为这与我的问题有关

这是我的.h

- (IBAction)slap:(id)sender {
    NSString *imagechange4 = [NSString stringWithFormat:@"onehandedplayer2.png"];
    //player2 is an UIButton IBOutlet
    [player2 setImage:[UIImage imageNamed:imagechange4]];

    [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(handsback1) userInfo:nil repeats:NO];
}

-(void)handsback1 {
    NSString *imagechange3= [NSString stringWithFormat:@"hands rotated.png"];
    [player2 setImage:[UIImage imageNamed:imagechange3]];
}

2 个答案:

答案 0 :(得分:0)

尝试使用performSelector -

[self performSelector:@selector(handsback1) withObject:nil afterDelay:0.5];

这很简单&可靠。

答案 1 :(得分:0)

只是闲着几分钟(!)&再次遇到这种情况 - 我突然意识到,当按下图像更改时,您可能会误按按钮突出显示 - 您是否取消选中了按钮"突出显示调整图像" IB的属性检查员中的财产?

不太可能,但你永远不知道......