按下按钮一段时间后移动图像

时间:2014-08-04 19:24:15

标签: ios animation uiimageview

我试图做一个简单的动画,但我很难找到我在网上寻找的东西。

我希望用户点击一个按钮,从而将UIImageView(clouds01)从一个点转换到另一个点,从左上角开始,到屏幕的死点结束。

我看到的所有教程要么每次点击都要移动一次图像,要么无限地向一个方向移动图像。

我遵循了一个使用NSTimer来重复翻译方法的在线教程,但它无限制地完成,如此处所示。它只是每隔0.033秒将图像移动16 x 12,但我希望它在中间停止。

- (IBAction)animateClouds:(UIButton *)sender {

cloud01.center = CGPointMake(-512, -384);// sets cloud initial position
cloudTimer01 = [NSTimer scheduledTimerWithTimeInterval:.033 target:self       selector:@selector(moveCloud01) userInfo:nil repeats:1];

if (cloudTimer01 == nil) {
        cloudTimer01 = [NSTimer scheduledTimerWithTimeInterval:.033 target:self selector:@selector(moveCloud01) userInfo:nil repeats:1];
}

-(void)moveCloud01{
cloud01.center = CGPointMake(cloud01.center.x + 16, cloud01.center.y + 12);
}

有什么想法让它停止?感谢您提前获得任何建议。

1 个答案:

答案 0 :(得分:0)

当云足够接近中心时,只需使计时器无效

- (void)moveCloud01
{
    cloud01.center = CGPointMake(cloud01.center.x + 16, cloud01.center.y + 12);

    if (CGRectContainsPoint(yourCenterRect, cloud01.center))
    {
        [cloudTimer01 invalidate];
    }
}

yourCenterRectCGRect,表示中心区域。当云的中心位于此区域时,您只需停止计时器。