Open zkfpk6 opened 3 years ago
First sorry for my bad English. Here is my code: `
@objc func hero_setPushAnimationType() { self.hero.modalAnimationType = .selectBy(presenting: .push(direction: .left), dismissing: .push(direction: .right)) self.hero.isEnabled = true } @objc func enableSwipeBackWhenPresent(WithFinishDismissBlock finishDismissBlock: (() -> Void)?) { self.heroDismissBlock = finishDismissBlock let gesture = UIScreenEdgePanGestureRecognizer(target: self, action: #selector(swipe(_:))) gesture.edges = .left self.view.addGestureRecognizer(gesture) } @objc func swipe(_ gesture:UIScreenEdgePanGestureRecognizer) { switch gesture.state { case .began: self.dismiss(animated: true, completion: nil) case .changed: let progress = gesture.translation(in: nil).x / self.view.bounds.width Hero.shared.update(progress) default: if (gesture.translation(in: nil).x + gesture.velocity(in: nil).x) / self.view.bounds.width > 0.5 { self.dismiss(animated: true, completion: nil) Hero.shared.finish() if (self.heroDismissBlock != nil) { self.heroDismissBlock!() } } else { Hero.shared.cancel() } } }
`
Now i can swipe back very similar to UINavigationController, but because of the animation is not linear animation, current controller not tracking while my finger's movement, so how to fix it?
First sorry for my bad English. Here is my code: `
`
Now i can swipe back very similar to UINavigationController, but because of the animation is not linear animation, current controller not tracking while my finger's movement, so how to fix it?