Обнаружение касания UIImageView IOS

Я делаю что-то неправильно? Я не могу обнаружить кран на UIImageview . UIImageView *myImage в раскадровке. файлы кода находятся здесь: https://drive.google.com/folderview?id=0B2jWw-2wZC52NDBFZ2lXUTUzQXM&usp=sharing

Файл: ViewController.h

 #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet UIImageView *myImage; @end 

Файл: ViewController.m

 #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIGestureRecognizer *tapGestureRecognizer = [[UIGestureRecognizer alloc] initWithTarget:self action:@selector(tappedImage:)]; [self.myImage addGestureRecognizer:tapGestureRecognizer]; self.myImage.userInteractionEnabled = YES; // default is no for UIImageView } - (void)tappedImage:(UIGestureRecognizer *)gestureRecognizer { //UIImageView *myImage = (UIImageView *)gestureRecognizer.view; // do stuff; NSLog(@"it works"); } @end 

Я думаю, вы должны использовать класс UITapGestureRecognizer как:

 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)]; singleTap.numberOfTapsRequired = 1; preArrowImage.userInteractionEnabled = YES; [preArrowImage addGestureRecognizer:singleTap]; -(void)tapDetected{ NSLog(@"single Tap on imageview"); } 

Вы просто меняете файл .h на

  #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIGestureRecognizerDelegate> @property (strong, nonatomic) IBOutlet UIImageView *myImage; @end 

Затем .m файл

  #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIGestureRecognizer *tapGestureRecognizer = [[UIGestureRecognizer alloc] initWithTarget:self action:@selector(tappedImage:)]; tapgestureRecognizer.delegate = self; [self.myImage addGestureRecognizer:tapGestureRecognizer]; self.myImage.userInteractionEnabled = YES; // default is no for UIImageView } - (void)tappedImage:(UIGestureRecognizer *)gestureRecognizer { //UIImageView *myImage = (UIImageView *)gestureRecognizer.view; // do stuff; NSLog(@"it works"); } @end 

Я связываю tapgestureRecognizer с делегатом. Вы просто попробуйте этот код

даже если вы включили его по коду, попробуйте пойти в свою раскадровку, чтобы проверить «включить взаимодействие с пользователем» на изображении, ваш код кажется прекрасным, попробуйте и дайте мне знать.

плюс, просто мысль, попробуйте включить взаимодействие в представлении изображения, прежде чем назначать tapgesture 🙂

  UIGestureRecognizer *sliderTapview1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedImage:)]; [img addGestureRecognizer:sliderTapview1]; img.userInteractionEnabled = YES; 

просто замените это.

выглядит все, что нужно сделать, чтобы это сделать [myImage userInteractionEnabled: YES] и удалить «автомат» и «включить взаимодействие с пользователем» в построителе интерфейса при просмотре изображения.

Interesting Posts
Давайте будем гением компьютера.