How would you detect and run an action when a UIImageView
is touched?
This is the code that I have so far:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
var touch: UITouch = UITouch()
if touch.view == profileImage {
println("image touched")
}
}
You can detect touches on a UIImageView
by adding a UITapGestureRecognizer to it.
It's important to note that by default, a UIImageView
has its isUserInteractionEnabled
property set to false, so you must set it explicitly in storyboard or programmatically.
override func viewDidLoad() {
super.viewDidLoad()
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(imageTapped)))
}
@objc private func imageTapped(_ recognizer: UITapGestureRecognizer) {
print("image tapped")
}
You can put an UITapGestureRecognizer
inside your UIImageView
using Interface Builder or in code (as you want), I prefer the first. Then you can put an @IBAction
and handle the tap inside your UIImageView
, Don't forget to set the UserInteractionEnabled
to true
in Interface Builder or in code.
@IBAction func imageTapped(sender: AnyObject) {
println("Image Tapped.")
}
I hope this help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With