Wykonałem animację, która porusza się po ekranie, moja animacja ciągle się pętli. Jak zatrzymać animację po dotknięciu animowanego obrazu, Pozwolić animacji kontynuować po podniesieniu dotyku?Zatrzymaj i rozpocznij animację dotykiem. Cel C
wiem jak używać TouchesMoved przenieść określoną przycisk tak:
CGPoint point = [[[event allTouches] anyObject] locationInView:self.view];
UIControl *control = sender;
control.center = point;
Ale coraz go do pracy z moim animacji. Chciałbym, aby animacja była kontynuowana po jej dotknięciu.
SelectedCellViewController.h
// SelectedCellViewController.h
#import <Accounts/Accounts.h>
#import <QuartzCore/QuartzCore.h>
@interface SelectedCellViewController : UIViewController {
IBOutlet UIImageView *imageView;
UIImageView *rocket;
}
@end
viewControllertoShow.m
#import "SelectedCellViewController.h"
@interface SelectedCellViewController()
@end
@implementation SelectedCellViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
}
return self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
[self performSelector:@selector(imageSpawn:) withObject:nil afterDelay:3];
}
- (void) imageSpawn:(id) sender
{
UIImage* image = [UIImage imageNamed:@"ae"];
rocket = [[UIImageView alloc] initWithImage:image];
rocket.frame = CGRectMake(-25, 200, 25, 40);
[UIView animateWithDuration:5
delay:0.2f
options:UIViewAnimationCurveEaseInOut | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse
animations:^(){rocket.frame=CGRectMake(345, 200, 25, 40);}
completion:^(BOOL fin) {
}];
[self.view addSubview:rocket];
UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ballTapped:)];
tapped.numberOfTapsRequired = 1;
[rocket addGestureRecognizer:tapped];
[rocket setUserInteractionEnabled:YES];
}
-(void)ballTapped:(UIGestureRecognizer *)gesture
{
CGPoint location = [gesture locationInView:gesture.view];
//then write code to remove the animation
[self.view.layer removeAllAnimations];
NSLog(@"Tag = %d", gesture.view.tag);
rocket.frame = CGRectMake(location.x,location.y,25,40);
}
- (void)dismissView {
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (void)viewDidUnload {
}
@end
Wyświetl moją zaktualizowaną odpowiedź i daj mi znać, czy to pomaga –
Więc zaktualizowałem swój kod. Wyjąłem całkowicie mój myScrollView, teraz nawet mój log dla zdarzenia dotykowego nie działa.Moje zdjęcie jest prawidłowo animowane. ale nie dostaję żadnego wydarzenia dotykowego? –
@MicRO, więc zaktualizowałem swój kod –