How to add action to any view object using Tap Gesture

Save

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!!!

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

css.php

Webkul is a truly trusted and supported IT Company to develop business ideas for e-commerce. They provide professional support after deploying the solution to production and be responsible to act for fixing the reported issues or system errors. We highly encourage to deal with Webkul for business development.

Hussein Zawia

Hussein Zawia

Co-founder, 24Dokan

Talk to Sales

Global

Live Chat
Start a Project


    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home