私は uiimageview を持っていて、時計のアニメーションの実行中に移動したい.問題は、ボタンを押して移動すると、アニメーションが画像を再生し、画像の再生が終了した後、画像が 10px 移動し始めることです。このようなことはあってはならず、アニメーションと動きは一緒に開始および終了する必要があります。
-(IBAction) MoveRightButton : (id) sender {
[self animateRight];
[self rightTimer];
}
-(IBAction) stopRight {
[image stopAnimating];
[rightTimer invalidate];
}
-(void) animateRight {
NSArray * moveRight = [[NSArray alloc] initWithObjects :
[uiimage imageNamed : @"Clock1.png"] , .... , nil];
UIImage *defaultImage = [UIImage imageNamed : @"Clock1.png"];
[image setImage : defaultFace];
image.animationImages = moveRight;
image.animationDuration = 0.5;
image.animationRepeatCount = 1;
[image startAnimating];
}
-(void) goRight {
[UIView animateWithDuration : 0.5 animation : ^{
image.frame = CGRectMake (image.frame.origin.x + 10, image.frame.origin.y,image.frame.size.width, image.frame.size.height);
}];
[self stopRight];
}
-(void) rightTimer {
rightTimer = [NSTimer scheduledTimerWithTimeInterval : 0.5
target : self
selector : @selector(goRight)
userInfo : nil
repeats : YES];
if (rightTimer == nil) {
rightTimer = [NSTimer scheduledTimerWithTimeInterval : 0.5
target : self
selector : @selector(goRight)
userInfo : nil
repeats : YES];
}
}