Sono abbastanza nuovo alla programmazione e all'obiettivo C. Mi chiedevo come creare un'applicazione con uno schermo vuoto e un timer che dura per un minuto. Si intende toccare il più velocemente possibile e il più a lungo possibile. Mi chiedevo come implementare lo UITapGestureRecognizer
nel mio codice.Come implementare UITapGestureRecognizer nella mia applicazione
risposta
Questa è una guida passo passo su come implementare riconoscitori gesto nella classe:
conforma la tua classe per
UIGestureRecognizerDelegate
protocollo.Istanziare il riconoscimento dei gesti. Ad esempio, per creare un'istanza di un
UITapGestureRecognizer
, faremo:UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
Qui, l'azione è il selettore che gestirà il gesto. Qui, il nostro handleTapFrom selettore avrà un aspetto simile:
- (void) handleTapFrom: (UITapGestureRecognizer *)recognizer { //Code to handle the gesture }
L'argomento al selettore è il sistema di riconoscimento gesto. Possiamo usare questo gesto riconoscitore per accedere alle relative proprietà, per esempio, siamo in grado di trovare lo stato del sistema di riconoscimento gesto, come,
UIGestureRecognizerStateBegan
,UIGestureRecognizerStateEnded
, eccImpostare le proprietà desiderate sul sistema di riconoscimento gesto istanziato. Ad esempio, per un
UITapGestureRecognizer
, possiamo impostare le proprietànumberOfTapsRequired
enumberOfTouchesRequired
.Aggiungere il riconoscimento del gesto alla vista per cui si desidera rilevare i gesti. Nel nostro codice di esempio (sarò condividere che il codice per il vostro riferimento), aggiungeremo di riconoscimento gesto a un IMAGEVIEW con la seguente riga di codice:
[self.imageView addGestureRecognizer:tapGestureRecognizer];
Dopo aver aggiunto il sistema di riconoscimento gesto alla vista, impostare il delegato per il riconoscimento dei gesti, ovvero la classe che gestirà tutte le informazioni sul riconoscimento dei gesti. Nel nostro codice di esempio, sarebbe come:
tapGestureRecognizer.delegate = self;
Nota: Assegnare il delegato dopo aver aggiunto il sistema di riconoscimento gesto alla vista. In caso contrario, il metodo di azione non verrà chiamato.
Ci scusiamo per il formato inadeguato !!! –
Grazie mille per il vostro aiuto ragazzi! –
Niente di cui dispiacersi. C'è una curva di apprendimento quando si tratta di formattazione del mark down. – nhahtdh
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.tableView addGestureRecognizer:gestureRecognizer];
self.tableView.userInteractionEnabled = YES;
gestureRecognizer.cancelsTouchesInView = NO; // this prevents the gesture recognizers to 'block' touches
Esempio in Swift:
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "myUIImageViewTapped:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
self.myUIImageView.addGestureRecognizer(singleTap)
self.myUIImageView.userInteractionEnabled = true
}
func myUIImageViewTapped(recognizer: UITapGestureRecognizer) {
if(recognizer.state == UIGestureRecognizerState.Ended){
println("myUIImageView has been tapped by the user.")
}
}
}
Esatto, userInteractionEnabled è essenziale. Grazie! –
Non capisco perché è necessario controllare "recognizer.state == UIGestureRecognizerState.Ended". Ho provato questo e funziona anche senza. La mia ipotesi è che ne hai bisogno per il riconoscimento di gesture multi-tap ma per un solo tocco, ne abbiamo ancora bisogno? – plam4u
Se si sta lavorando Swift (iOS9) e SpriteKit, provare quanto segue.
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
let singleTap = UITapGestureRecognizer(target:self, action:#selector(self.handleSingleTap:))
singleTap.numberOfTouchesRequired = 1
singleTap.addTarget(self, action:#selector(self.handleSingleTap))
view.userInteractionEnabled = true
view.addGestureRecognizer(singleTap)
}
//event handler
func handleSingleTap(sender:UITapGestureRecognizer){
print("tapped")
}
}
- 1. come implementare l'acquisto in-app nella mia applicazione Android?
- 2. Leggibilità nella mia applicazione
- 3. Quando devo implementare l'ACL Spring Security nella mia applicazione?
- 4. Come implementare AccountManager nella mia app
- 5. Come inserire pubblicità nella mia applicazione Android?
- 6. come installare underscore.js nella mia applicazione angolare?
- 7. Come integrare spavalderia-ui nella mia applicazione
- 8. Come posso implementare la funzionalità di awt.CardLayout nella mia applicazione javaFX 2.0?
- 9. Inserire un 'terminale' nella mia applicazione?
- 10. UITapGestureRecognizer non viene attivato nella sottoclasse UIView
- 11. Come implementare avvisi di errore di rete nella mia app?
- 12. PHP Fatal error: Sto cercando di implementare un modulo \ AbstractType nella mia applicazione Symfony2
- 13. come ottenere tutti i percorsi nella mia applicazione di rotaie?
- 14. Come incorporare WebKit nella mia applicazione C/C++/Win32?
- 15. Come testare la notifica push funziona nella mia applicazione
- 16. Avvia FeedbackAttività nella mia applicazione come in Hangouts Android
- 17. Come incorporare Jetty e Jersey nella mia applicazione Java
- 18. Come incorporare un carattere personalizzato nella mia applicazione
- 19. Come determinare l'utilizzo della memoria nella mia applicazione .NET
- 20. Come leggere il pdf nella mia applicazione Android?
- 21. Come ottenere il modulo attualmente attivo nella mia applicazione?
- 22. Android, Come leggere il codice QR nella mia applicazione?
- 23. Come posso incorporare CEF3 nella mia applicazione OSX?
- 24. Come posso utilizzare l'ORM Django nella mia applicazione Tornado?
- 25. Come inviare SMS utilizzando Twilio nella mia applicazione Android?
- 26. Come aggiungere Google Maps nella mia applicazione in Qt?
- 27. Come trovo i lavoratori nella mia applicazione Elixir?
- 28. Come posso integrare AirPush Ads nella mia applicazione Android?
- 29. Incorpora resque-frontend web nella mia applicazione di rotaie
- 30. Collegamenti per modificare la scheda attiva nella mia applicazione
aiutare se stessi: https://github.com/nhahtdh/PS3/blob/master/Game/GameBlock.m – nhahtdh