swift coordinates touchscreen

swift - Obteniendo las coordenadas de la ubicación toco la pantalla táctil



coordinates touchscreen (5)

Intento obtener las coordenadas de la ubicación donde toco la pantalla táctil para colocar un UIImage específico en este punto.

¿Cómo puedo hacer esto?


El último swift4.0, para ViewController

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { let location = touch.location(in: self.view) print(location.x) print(location.y) } }


Esto es trabajo en Swift 2.0

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { if let touch = touches.first { let position :CGPoint = touch.locationInView(view) print(position.x) print(position.y) } }


Swift 4.0

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { let position = touch.location(in: view) print(position) } }

source


Tomando esto hacia adelante para Swift 3 - Estoy usando:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { let position = touch.location(in: self) print(position.x) print(position.y) } }

Feliz de escuchar formas más claras o más elegantes de producir el mismo resultado


En una subclase de UIResponder , como UIView :

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { let touch = touches.anyObject()! as UITouch let location = touch.locationInView(self) }

Esto devolverá un CGPoint en coordenadas de vista.

Actualizado con la sintaxis de Swift 3

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { let touch = touches.first! let location = touch.location(in: self) }

Actualizado con la sintaxis de Swift 4

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let touch = touches.first! let location = touch.location(in: self) }