如何让图像在Xcode上重复移动周期?

时间:2014-07-30 09:31:41

标签: ios objective-c animation

我有一个图像从屏幕的一端开始,它从左向右移动,我的问题是它不断向右移动,从而失去图像,它只是永远向右移动。如何让它返回并从左侧重新开始运动?不是从右向左移动图像,而是从左侧再次开始移动。

这是我的代码。 方向是风景

-(void)imageMovement {
     image.center = CGRectMake(image.center.x - 1, image.center.y);
}

-(void)viewDidLoad {
     [super viewDidLoad];
     [self imageMovement];
     imageMovementTimer = [NSTimer scheduledWithTimeInterval:0.015 target:nil selector:@selector(imageMovement)userInfo:nil repeat:YES];    
}

此代码移动图像,如何重新启动?我尝试使用if语句,如

if (CGRectIntersectsRect(image.frame, block.frame)) {
    image.center = CGRectMake(image.center.x - 1, image.center.y);
}

这不起作用。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您可以使用CABasicAnimation

执行此操作
    CABasicAnimation*  shake = [CABasicAnimation animationWithKeyPath:@"position"];
    [shake setDuration:0.1];   
    [shake setRepeatCount:10]; // how many times you want to shake image
    [shake setAutoreverses:YES];

    [shake setFromValue:[NSValue valueWithCGPoint:
                         CGPointMake(image.center.x - 1, image.center.y)]];
    [shake setToValue:[NSValue valueWithCGPoint:
                       CGPointMake(image.center.x +200, image.center.y)]];
    [image.layer addAnimation:shake forKey:@"position"];