marcosgriselli / marcosgriselli/SwipeableTabBarController
Very quick swipes cause app to freeze
@marcosgriselli is already working on this.
Since Jan 20, 2019.
- Dominant language
- Swift
- Stars
- 1.5k
- Forks
- 108
- PR merge metrics
- No merged PRs in 30d
Description
On iOS 12.0.1, iPhone X with SwipeableTabBarController 1.4.0. Initially, produced in my app and then reproduced on the sample app.
Issue: Swipe very quick (velocity.x > 1500, even up to 4000) causes the app to sometime freeze. The tabs may still work (they select but nothing else changes).
Reproduction steps:
-
Make this change in the sample app to make it easier to reproduce:
In TabBarController.swift, line 17, change selectedViewController = viewControllers![1] to selectedViewController = viewControllers![0] -
Run the app on a real device
-
Slowly swipe from right to left so that the screen tracks your finger.
-
From the middle screen, very quickly swipe from right to left. You need to be quick enough so that the tab changes without tracking your finger. It seems to happen most often when velocity.x is over 1500.
-
If the bug does not occur, you must kill the app and restart as the issue will not occur once each screen has been displayed.
I have not been able to fix this myself as of yet but I have noticed that UIView.animate has been called and the completion handler is never fired when the issue occurs.
IssueHunt Summary
Backers (Total: $150.00)
marcosgriselli ($150.00)
Submitted pull Requests
- #125 Queue tab selections during active transitions
- #127 Serialize tab selections during active transitions
- #126 fix: avoid freeze on very fast repeated swipes
Become a backer now!
Or submit a pull request to get the deposits!
Tips
- Checkout the Issuehunt explorer to discover more funded issues.
- Need some help from other developers? Add your repositories on IssueHunt to raise funds.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.