Sto lavorando a un'app per la calcolatrice grafica per iPad e volevo aggiungere una funzione in cui un utente può toccare un'area nella vista grafico per far apparire una casella di testo che mostra le coordinate del punto toccato. Come posso ottenere un CGPoint da questo?Come ottenere un CGPoint da una posizione selezionata?
risposta
avete due modi ...
1.
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
}
qui, si può ottenere la posizione con il punto di vista corrente ...
2.
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[self.view addGestureRecognizer:tapRecognizer];
qui, questo codice si usa quando vuoi fare qualcosa con il tuo oggetto perticolare o sotto-vista della tua vista principale
Try This
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// Get the specific point that was touched
CGPoint point = [touch locationInView:self.view];
NSLog(@"X location: %f", point.x);
NSLog(@"Y Location: %f",point.y);
}
È possibile utilizzare "touchesEnded" se si preferisce vedere dove l'utente solleva il dito dallo schermo, invece di dove hanno toccato il basso.
Se si utilizza un oggetto UIGestureRecognizer
o UITouch
è possibile utilizzare il metodo per recuperare il locationInView:
CGPoint
all'interno del data vista l'utente ha toccato.
probabilmente è meglio e più semplice usare un UIGestureRecognizer con la vista mappa invece di provare a suddividerla sottoclasse e toccare manualmente i tocchi.
Fase 1: In primo luogo, aggiungere il sistema di riconoscimento gesto alla visualizzazione della mappa:
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tapGestureHandler:)];
tgr.delegate = self; //also add <UIGestureRecognizerDelegate> to @interface
[mapView addGestureRecognizer:tgr];
Fase 2: Avanti, implementare shouldRecognizeSimultaneouslyWithGestureRecognizer e tornare YES in modo che il rubinetto gesto riconoscitore può funzionare allo stesso tempo, come la mappa del (altrimenti rubinetti su perni non andranno gestito automaticamente da mappa):
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer
:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
Fase 3: Infine, implementare il gestore gesto:
- (void)tapGestureHandler:(UITapGestureRecognizer *)tgr
{
CGPoint touchPoint = [tgr locationInView:mapView];
CLLocationCoordinate2D touchMapCoordinate
= [mapView convertPoint:touchPoint toCoordinateFromView:mapView];
NSLog(@"tapGestureHandler: touchMapCoordinate = %f,%f",
touchMapCoordinate.latitude, touchMapCoordinate.longitude);
}
func handleFrontTap(gestureRecognizer: UITapGestureRecognizer) {
print("tap working")
if gestureRecognizer.state == UIGestureRecognizerState.Recognized {
`print(gestureRecognizer.locationInView(gestureRecognizer.view))`
}
}
semplicemente si vuole lanciare in un Swift 4 risposta perché l'API è molto diverso cercando.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = event?.allTouches?.first {
let loc:CGPoint = touch.location(in: touch.view)
//insert your touch based code here
}
}
O
let tapGR = UITapGestureRecognizer(target: self, action: #selector(tapped))
view.addGestureRecognizer(tapGR)
@objc func tapped(gr:UITapGestureRecognizer) {
let loc:CGPoint = gr.location(in: gr.view)
//insert your touch based code here
}
In entrambi i casi loc
conterrà il punto che è stato toccato nella vista.
- 1. Come ottenere la posizione UITouch da UIGestureRecognizer
- 2. Come ottenere l'opzione selezionata da ListPreference?
- 3. Come ottenere l'ultima opzione selezionata da un multiselect?
- 4. Come ottenere CGPoint della posizione con google maps sdk per iOS?
- 5. ottenere la posizione corrente da un XmlReader
- 6. Come ottenere l'ID opzione selezionata?
- 7. Come ottenere la posizione chiave da una HashMap in Java
- 8. come ottenere i dati dalla riga selezionata da datagridview
- 9. JQgrid: valore specifico da una riga selezionata
- 10. Come posso ottenere il nome di una collectionviewcell selezionata?
- 11. Come posso ottenere la cornice di testo selezionata da UITextView
- 12. Come salvare un frame di dati come CSV in una posizione selezionata dall'utente utilizzando tcltk
- 13. Come posso ottenere una stringa selezionata da una casella di testo Tkinter?
- 14. Come ottenere il valore di un bit in una determinata posizione da un byte?
- 15. Come ottenere una posizione URL da un percorso server per un file di proprietà
- 16. NSLog con CGPoint dati
- 17. Come ottenere la linea selezionata in una casella di testo?
- 18. Come forma matrice CGPoint in Objective C
- 19. Come ottenere un InputStream da una BufferedImage?
- 20. come ottenere l'opzione selezionata jquery autocomplete
- 21. Come ottenere $ (questa) opzione selezionata in jQuery?
- 22. modo preferito di ottenere la voce selezionata di una JComboBox
- 23. posizione del cursore in un UITextView
- 24. Come spostare quattro immagini da una posizione a un'altra in posizione orizzontale in ios
- 25. Ottenere un componente da JList facendo clic sulla posizione
- 26. Conversione di un CGPoint per NSValue
- 27. come ottenere la posizione corrente in FragmentPagerAdapter?
- 28. Come ottenere posizione dell'errore da json.loads in Python
- 29. inizializzazione di un CGPoint con {} notazione
- 30. Come convertire NSString in CGPoint in iPhone
Questa è una risposta ben completa –