2013-10-03 19 views
9

Sto avendo una serie di imageview disposti, e assegnando un riconoscitore TapView ad esso[tag UITapGestureRecognizer]: selettore non riconosciuto inviato ad esempio

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
             initWithTarget:self action:@selector(action:)]; 
[tapRecognizer setNumberOfTouchesRequired:1]; 
[tapRecognizer setDelegate:self]; 
imageView.userInteractionEnabled = YES; 
[imageView addGestureRecognizer:tapRecognizer]; 

e ho definito il selettore come:

-(void) action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    NSLog (@"%d",[sender tag]); 
    } 

Si sta interrompendo e ricevo il messaggio di errore come: -

[UITapGestureRecognizer tag]: unrecognized selector sent to instance 0x145d0210

risposta

28

È possibile utilizzare questo ..

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
             initWithTarget:self action:@selector(action:)]; 
[tapRecognizer setNumberOfTouchesRequired:1]; 
[tapRecognizer setDelegate:self]; 
imageView.userInteractionEnabled = YES; 
imageView.tag = 1111; 
[imageView addGestureRecognizer:tapRecognizer]; 

E in azione prova questo ..

-(void) action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    UITapGestureRecognizer *tapRecognizer = (UITapGestureRecognizer *)sender; 
    NSLog (@"%d",[tapRecognizer.view tag]); 
    } 

analitico:

UITapGestureRecognizer non ha proprietà come tag. ma ha la proprietà view, da questa proprietà è possibile accedere alla vista con cui è stato allegato UITapGestureRecognizer.

Spero che vi aiuterà a

+0

funziona così:) grazie .... – Wodjefer

+0

Benvenuto e sentiti libero per qualsiasi aiuto. E per favore accetta la risposta in modo che altri utenti possano ottenere aiuto dal tuo post –

+0

grazie per la spiegazione dettagliata –

7

UITapGestureRecognizerUIGestureRecognizer dichiara una proprietà o un metodo chiamato tag.

Non è possibile utilizzarlo. Ecco perché stai ricevendo l'errore.

Su una nota correlata. Non mi piace davvero usare tag in generale. C'è sempre un modo migliore per fare quello che stai facendo senza usare tag.

+1

cud u plzz suggerire un modo migliore :) grazie per il commento. – Wodjefer

+0

@Wodjefer Che cosa stai cercando di fare con 'tag'? cioè perché lo stai usando? Se so che posso suggerire un modo migliore. – Fogmeister

+0

In realtà, ho organizzato una serie di immagini e quando scorrono le immagini, ottengo l'anteprima ... come nella galleria iphone (ios7) – Wodjefer

3

Non è possibile ottenere tag proprietà di UITapGestureRecognizer piuttosto si deve ottenere dei beni del suo punto di vista,

si può provare,

-(void)action:(id)sender 
    { 
    NSLog(@"TESTING TAP"); 
    NSLog (@"%d",[[sender view]tag]); 

    } 
+0

Grazie mille per questo. Gli altri metodi non hanno funzionato per me! – shrishaster

10

Basta cambiare il metodo di selezione con la following..and funzionerà

tapgesture avrà tutta la visione che viene sfruttato .. e poi si può ottenere la proprietà tag da esso come ho dichiarato in seguito

-(void)action:(UITapGestureRecognizer *)tapGesture{ 

    NSLog(@"TESTING TAP"); 
     NSLog (@"%d",tapGesture.view.tag); 

    } 
Problemi correlati