我有一个图像从屏幕的一端开始,它从左向右移动,我的问题是它不断向右移动,从而失去图像,它只是永远向右移动。如何让它返回并从左侧重新开始运动?不是从右向左移动图像,而是从左侧再次开始移动。
这是我的代码。 方向是风景
-(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);
}
这不起作用。任何人都可以帮助我吗?
答案 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"];