7

Qualcuno è riuscito a far funzionare un UIGestureRecognizer su un UIView che è una sottoview di un UIScrollView? Le mie richiamate non sembrano mai essere chiamate.UIgestureRecognizer in una vista all'interno di UIScrollView

Come semplice esempio, desidero avere una visualizzazione a scorrimento e nella terza pagina ascoltare un tocco con UITapGestureRecognizer. Tuttavia non riesco a farlo funzionare.

Ecco come lo farei:

self.scrollView = [[[UIScrollView alloc] initWithFrame:self.view.frame] autorelease]; 
self.scrollView.pagingEnabled = YES; 
self.scrollView.contentSize = CGSizeMake(self.section1ScrollView.frame.size.width * 3, self.scrollView.frame.size.height); //3 pages 

UIImageView *p0 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page0.png"]] autorelease]; 
[self.scrollView insertSubview:p0 atIndex:self.scrollView.subviews.count]; 

UIImageView *p1 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page1.png"]] autorelease]; 
//code to move it to the next page 
[self.scrollView insertSubview:p1 atIndex:self.scrollView.subviews.count]; 

UIImageView *p2 = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"page2.png"]] autorelease]; 
//code to move it to the next page 
[self.scrollView insertSubview:p2 atIndex:self.scrollView.subviews.count]; 

UITapGestureRecognizer *p2TapRegocnizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(p2Tapped:)] autorelease]; 
//p2TapRegocnizer.delegate = self; 
[p2 addGestureRecognizer:p2TapRegocnizer]; 
+0

sto cercando lo stesso scenario. Ma invece di non essere chiamato, la mia applicazione si sta bloccando. Sei riuscito a farlo funzionare? – tuler

+0

No, credo di aver abbandonato quei test. Se torno da loro, ti farò sapere. – Dimitris

+0

Ho avuto la stessa cosa, e il mio metodo è sempre chiamato, ma ho aggiunto la stessa istanza di gestureRecognizer in tutta la mia immagine Vista cioè in p0, P1 e P2. Quindi ora non so quando viene chiamato p2Tapped per quale indice è – Yogesh

risposta

19

UIImageView ha inadempiente userInteractionEnabled impostata su NO. Proverei a cambiarlo in SÌ.

0
[webView setUserInteractionEnabled:YES]