How to assign an action for UIImageView object in Swift
You'll need a UITapGestureRecognizer
.To set up use this:
override func viewDidLoad(){ super.viewDidLoad() let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))) imageView.isUserInteractionEnabled = true imageView.addGestureRecognizer(tapGestureRecognizer)}@objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer){ let tappedImage = tapGestureRecognizer.view as! UIImageView // Your action}
(You could also use a UIButton
and assign an image to it, without text and than simply connect an IBAction
)
You need to add a a gesture recognizer (For tap use UITapGestureRecognizer, for tap and hold use UILongPressGestureRecognizer) to your UIImageView
.
let tap = UITapGestureRecognizer(target: self, action: #selector(YourClass.tappedMe))imageView.addGestureRecognizer(tap)imageView.isUserInteractionEnabled = true
And Implement the selector method like:
@objc func tappedMe(){ println("Tapped on Image")}
You can add a UITapGestureRecognizer
to the imageView, just drag one into your Storyboard/xib, Ctrl-drag from the imageView to the gestureRecognizer, and Ctrl-drag from the gestureRecognizer to the Swift-file to make an IBAction
.
You'll also need to enable user interactions on the UIImageView
, as shown in this image: