3
votes

Recently I found a weird iPad behavior on touches. I have a UITableView that slides in from the right edge of the screen(Like Facebook app has it on the left side) on swipe. In my implementation I have added a strip of UIView and have added swipe gesture recognizer. My application is in Landscape mode only

Now since the view comes out from the right edge, the general behavior would be to start swiping the finger from outside the edge of the screen. The menu shows up perfectly all the time, if the swiped finger starts from the edge that has the home button. However in landscape right mode i.e when the camera edge is on the right, and I swipe from that end, the gesture gets recognized once in 3-4 attempts.

I implemented touchesBegan method in the same class and got exactly the same behavior.

Does my application fails to identify touches from that edge(that to selectively)? What exactly it is happening? looks like it is a deadlock on Coding front.

Please help. Thanks

3
Right @JoeBlow, I am using UISwipeGestureRecognizer - Shivam Mishra
The view that has the UISwipegestureRecognizer is not full screen. It is just a 10units wide strip on the right edge of the application - Shivam Mishra
Are you swiping up and down or across that thin vertical strip? - Fattie

3 Answers

4
votes

Since you want the touch to begin from the edge of the screen, why not use UIScreenEdgePanGestureRecognizer? This class is specifically used for touches that begin near the edge of the screen.

There is a simple example here.

0
votes

Is your app is full-screen? if so than the ios system is trying to pull down the SB-settings from that side

0
votes

I'm seeing the exact same thing. And I do use UIScreenEdgePanGestureRecognizer, I even apply the recognizer to the whole screen view. Also, I see the same behavior in "portrait-upside-down" orientation. I think it's a bug in the touch recognition in iOS 7 and 8 (actually until I saw this post I thought it's the gesture recognition but that doesn't explain the same behavior for generic touch handling).