我创建了自定义推送/弹出交互式转换,但我无法理解如何同时处理此转换和表格视图滚动。
对于句柄自定义弹出动画,我添加了平移手势
let pan = UIPanGestureRecognizer(
target: self,
action: #selector(didPan))
pan.delegate = self
view.addGestureRecognizer(pan)
接下来我处理这个锅
if recognizer.state == .began {
animator.interactive = true
navigationController!.popViewController(animated: true)
}
animator.handlePan(recognizer: recognizer)
然后在符合UIPercentDrivenInteractiveTransition
和UIViewControllerAnimatedTransitioning
的动画师内部,我会转换动画。
我尝试通过平移手势从VC_2弹出导航到VC_1。
问题是添加平移手势表后视图不滚动。我认为这是因为2个手势识别器(我自己和UIKit表视图的识别器)。实际上,当桌子向上滚动时,我希望我自己的平台以交互方式弹出我的VC_2。
唯一的想法是
func gestureRecognizer(
_ gestureRecognizer: UIGestureRecognizer,
shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return tableView.contentOffset.y <= 0
}
但是在pop表视图偏移改变了奇怪:我的意思是表格在平移手势移动时滚动太多(移动为20px,偏移量改为500px某种类型)。
处理此问题的最佳方法是什么?您可以在Google的收件箱应用中看到此类动画 - 从电子邮件弹出到列表。