2012-02-09 15 views
11

che sto cercando di fare cliccabile UIImage, dove l'utente può fare clic su esso allora animerete ...Aggiunta Tap Gesture su UIImage

sto lavorando con l'UIScrollView Ecco perché ho usato l'UITapGesture invece di touchesBegan, e sembra che UIGestureRecognizer non sia compatibile con UIImage ...

ho ragione?

Continuo a ricevere questo messaggio di errore

tipo di ricevitore 'UIImage' per il messaggio di esempio non dichiara un metodo con selettore 'addGestureRecognizer'

c'è qualche altro modo?

+0

possibile duplicato di [GestureRecognizer su UIImageView] (http://stackoverflow.com/questions/3907397/gesturerecognizer-on-uiimageview) – iosMentalist

risposta

5

si deve aggiungere il gesto di UIImageView, non UIImage

+0

non funziona con Core Animation. quello che sto cercando di fare qui è che l'immagine si animerà quando si fa clic. – Crisn

+0

Il punto qui è che UIImage non può ricevere un evento di tocco. Devi gestire l'evento touch da qualche altra parte. – jasondinh

1

Prova con UIButton invece di UIIMage e fare il tipo di UIButtonpersonalizzato. E cliccando sullo stesso puoi mostrare l'animazione.

+0

può UIButton essere animato? Ho usato la UIImage a causa di CoreAnimation. – Crisn

+1

sull'evento clic del pulsante, è possibile visualizzare l'animazione di UIImage – Sarah

+0

Questa è solo una soluzione alternativa ma non la risposta corretta. Il modo migliore è aggiungere il gesto a UIImageView. Non abusare dei pulsanti come immagini non è il modo giusto per farlo. – mariusLAN

2

È possibile semplicemente aggiungere un TapGestureRecognizer a UIImageView. Devi utilizzare UIImageView perché è possibile aggiungere alle viste solo il riconoscimento dei gesti.

UIView *someView = [[UIView alloc] initWithFrame:CGRectZero]; 
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; 
tapRecognizer.numberOfTapsRequired = 1; 
[someView addGestureRecognizer:tapRecognizer];

È possibile risposta al rubinetto con il selettore definito e fare cose ci

- (void)tapAction:(UITapGestureRecognizer *)tap 
{ 
    // do stuff 
}
17

È necessario aggiungere TapGesture in UIImageView non UIImage

imgView.userInteractionEnabled = YES; 

UITapGestureRecognizer *tapGesture1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 

tapGesture1.numberOfTapsRequired = 1; 

[tapGesture1 setDelegate:self]; 

[imgView addGestureRecognizer:tapGesture1]; 

[tapGesture1 release]; 

È possibile risposta al rubinetto con il selettore definito e fare cose lì

- (void) tapGesture: (id)sender 
{ 
    //handle Tap... 
} 
Problemi correlati