Start a Project

How to add action to any view object using Tap Gesture

What is Tap Gesture:

If you’ve ever used an iOS device, then, whether you know it or not, you’ve used tap gesture recognition on many occasions. like double tapping functionality, add action to non-clickable view objects etc. All of these actions are done by tap gesture recognizers.

Disadvantage:

The worst part about adding a UITapGestureRecognizer or any sort of gesture recognizer/target action is implementing a new function solely for the selector parameter. For this, I’d like to share a neat trick I threw together that lets you add gesture recognizers without selectors.

Implementation:

Let’s say we have anUIImageView in our View Controller and we want to add a UITapGestureRecognizer to it that prints out a statement whenever it’s tapped.

Normally we would create an instance of a UITapGestureRecognizer and set a target to the View Controller and its selector as some function we quickly threw together (myImageViewTapped(sender: UITapGestureRecognizer)). This can get a bit redundant and can lead to messy code with functions for every subview you want to add interactivity too.

I got to thinking that I could just make a quick extension that adds tap gesture recognizers to my image view for me, but then I’d have to make a new function for each recognizer, right? Wrong! Using the power of associated objects, we can actually store closures as computed properties in our extension!

Uses:

Thank You!!!

Exit mobile version