7

Czy ktoś zdołał uzyskać UIGestureRecognizer do pracy na UIView, który jest podzbiorem UIScrollView? Moje callbacki nigdy nie wydają się być wywoływane.UIgestureRecognizer w widoku wewnątrz UIScrollView

Jako prosty przykład, chcę mieć przewijany widok stronicowania, a na trzeciej stronie słuchać stuknięcia za pomocą UITapGestureRecognizer. Jednak nie mogę go uruchomić.

Oto jak zrobiłbym to:

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

Próbuję tego samego scenariusza. Ale zamiast po prostu nie być wywoływanym, moja aplikacja ulega awarii. Udało ci się to sprawić? – tuler

+0

Nie, uważam, że zrezygnowałem z tych testów. Jeśli wrócę do nich, dam ci znać. – Dimitris

+0

Miałem to samo i moja metoda jest wywoływana, ale dodałem to samo wystąpienie gestRecognizer w całym moim widoku obrazu, tj. W p0, p1 i p2. Tak więc nie wiem, kiedy wywoływana jest funkcja p2Tapped, dla której indeks – Yogesh

Odpowiedz

19

UIImageView ma zalega userInteractionEnabled ustawiona na NIE. Chciałbym zmienić to na TAK.

Powiązane problemy