NSTimer更快地移动UIImageView

时间:2014-05-20 14:43:55

标签: ios uiimageview nstimer

我使用NSTimer每1秒移动一次UIImageView,我想每2秒将时间从1减少到0.5,结果图像在视图内移动得更快。任何想法都会非常有用。

这是我用来移动UIImageView的计时器

float obstaclesSpeed = 1.0;

 movementTimer = [NSTimer scheduledTimerWithTimeInterval:obstaclesSpeed target:self selector:@selector(updateSpeed) userInfo:nil repeats:YES];

这是我的代码

-(void)updateSpeed {

    obstaclesSpeed = obstaclesSpeed / 2;

    [self startMoveObstacles];

}

我相信我做错了什么

1 个答案:

答案 0 :(得分:0)

您想要每2秒移动一次图像,还是让它移动速度越来越快?如果你每2秒移动一次,它就不会移动得更快。

你可以阅读NSTimer的文档,但要解决一些令人头疼的问题,这里有一些如何使用NSTimer的例子。

如果您想每两秒移动一次,可以执行以下操作。

- (void) startTimer {
    [_myTimer invalidate];
    _myTimer = nil;
    _myTimer = [NSTimer timerWithTimeInterval:2. target:self selector:@selector(respondToTimer:) userInfo:nil repeats:YES];
    [[NSRunLoop currentRunLoop] addTimer:_myTimer forMode:NSRunLoopCommonModes];
}

- (void)respondToTimer:(NSTimer*)timer {
    //Code to move your UIImageView
}

如果您想要越来越快地移动它,您可以执行以下操作。

- (void) startTimer {
    [_myTimer invalidate];
    _myTimer = nil;
    _myTimer = [NSTimer timerWithTimeInterval:_timeInterval target:self selector:@selector(respondToTimer:) userInfo:nil repeats:NO];
    [[NSRunLoop currentRunLoop] addTimer:_myTimer forMode:NSRunLoopCommonModes];
}

- (void)respondToTimer:(NSTimer*)timer {
    //Code to move your UIImageView
    _numberOfMoves++;
    if (_numberOfMoves < MAX_MOVES) {
        _timeInterval /= 2;
        [self startTimer];
    }
}