2010-10-26 12 views
17

Ho un UIScrollView con più UIImageViews in esso creato in questo modo.Rilevamento dei tocchi nella vista panoramica all'interno di uiscrollview

frame = [[UIImageView alloc] initWithImage:bg]; 
frame.frame = CGRectMake(FRAME_SEPARATOR + numPage*1024 + numColumn*(FRAME_SEPARATOR+230), 10 +numRow*(FRAME_SEPARATOR+145), 230, 145); 
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)]; 
[frame addGestureRecognizer:tap]; 
[tap release]; 
[scroll addSubView:frame]; 

Il problema è che imageTapped non viene chiamato quando si tocca un'immagine.

se aggiungo il sistema di riconoscimento gesto alla ScrollView in questo modo:

UITapGestureRecognizer *tap = 
[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)]; 
[scroll addGestureRecognizer:tap]; 
[tap release]; 

imageTapped si chiama.

Come posso rilevare i tocchi su UIImageViews?

Grazie

risposta

46

Assicurarsi userInteractionEnabled è impostata su YES sul UIImageView:

frame.userInteractionEnabled = YES; 

Consiglio anche utilizzando un nome diverso per la variabile UIImageView (es. IMAGEVIEW al posto del telaio). Altrimenti, puoi facilmente confonderlo con la proprietà frame della vista.

+0

Grazie! Questo ha fatto il trucco. – Jorge

+0

+1 Questo era anche il mio problema. Grazie! – AWrightIV

+0

Grazie, ho avuto lo stesso problema. – titaniumdecoy

Problemi correlati