Swift version: 5.6
When the user starts touching an iOS screen, touchesBegan()
is immediately called with a set of UITouches
. If you want to find where the user touched, you need to take one of those touches then use location(in:)
on it, like this:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let position = touch.location(in: view)
print(position)
}
}
That will make position
a CGPoint
representing where the user touched in the current view. You can if you want pass a different view to location(in:)
, and it will tell you where the touch was relative to that other view instead.
SPONSORED Fernando's book will guide you in fixing bugs in three real, open-source, downloadable apps from the App Store. Learn applied programming fundamentals by refactoring real code from published apps. Hacking with Swift readers get a $10 discount!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 2.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.