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)
}
}
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)
}