s0mbieZ
s0mbieZ

Reputation: 33

IOS: Detect swipe gestures in a specific place on a UIView

I am creating a storyboard app where the view is changed when the user performs swipe gestures. The issue I am having is that when you drag and drop a gesture recognizer onto the view from themain.storyboard file, the gesture is recognized from anywhere inside the UIView. Basically, I need to recognize a gesture that is performed in a specific area on the screen, similar to how you drag down the notification center in IOS 6. If this is unclear or you need more details, feel free to ask.

Thanks in advance for any help!

Upvotes: 3

Views: 9375

Answers (5)

MMV
MMV

Reputation: 327

Adding Swift version:

//Add gesture recognizer
let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(dismissShowMessageAndButtonDueToSwipeUp))
swipeGesture.direction = .up
backgroundView.addGestureRecognizer(swipeGesture)

Upvotes: 0

Anbu.Karthik
Anbu.Karthik

Reputation: 82776

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeView)];
[swipe setDirection:UISwipeGestureRecognizerDirectionLeft];
[[self innerView] addGestureRecognizer: swipe];

//UISwipeGestureRecognizerDirectionRight (or) up (or) down

Upvotes: 1

Berkin Sansal
Berkin Sansal

Reputation: 503

I am not sure if this will help you or you tried something like this, but i want to share my idea.

You can try UISwipeGestureRecognizer in your ViewControl.m like below:

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeToDoMethod)];
[swipeGesture setDirection:UISwipeGestureRecognizerDirectionRight];
[[self innerView] addGestureRecognizer: swipeGesture];

You can add an inner view into your main view and add this gesture to that view.

Hope this helps you, good luck! :)

Upvotes: 9

Andrew
Andrew

Reputation: 1106

You can add a subview into your view, set the subview's frame to the area where you want to catch the swipe gesture, add recognizer to it, and set its background color to clear color. Hope it help.

Upvotes: 0

Prashant Nikam
Prashant Nikam

Reputation: 2251

Use another UIView with 0 visibility, put it on area where you want recognize a gesture and then add gesture to this UIView.

This is just an idea.

Hope this will help you.

Upvotes: 0

Related Questions