InteractiveSideMenu icon indicating copy to clipboard operation
InteractiveSideMenu copied to clipboard

Using Screen Edge Pan to open menu can cause app to stop responding to touches

Open lukeharries opened this issue 7 years ago • 1 comments

Replication steps: (Swift 4, iOS 11.3 SDK, iOS11 Sim & Device) Use screen edge pan gesture to slowly open menu, drag finger to other side of screen, and then off screen.

Observed Behaviour: Menu Open transition is cancelled (content snaps back to full screen) and the UI becomes unresponsive.

Expected Behaviour:

  • Menu opens
  • UI Never becomes unresponsive after a menu transition, under any condition.

Suspected Issues: In MenuAnimator.handlePan(recognizer: ) the boolean condition progress > 0.4, velocity >= 0 || progress > 0.01, velocity > 100 does not appear to evaluate correctly. This may be a Swift 4 issue.

Also in MenuAnimator.handlePan(recognizer: ) there are some situations when Recognizer.state is cancelled or ended, and the program does not enter any conditional blocks where finishTransition or cancelTransition is called, so isUserInteractionEnabled is never set to true.

lukeharries avatar Apr 09 '18 20:04 lukeharries

I have exactly the same issue. For me, it happens when I try to navigate between A -> (B) -> C view controllers. B is an optional VC that might be bypassed and when it happens, C unwind to A where Screen Edge Pan on A will fail to open menu and causes UI to become unresponsive.

Also, following this to disable swipe to show menu gesture failed to work due to the recent updates.

AshleyDeng avatar Apr 10 '18 01:04 AshleyDeng