我在ViewControllerA
内有一个滚动视图。当用户在平移手势期间位于滚动视图的末尾时,它会自动转换为具有自己的滚动视图的ViewControllerB
。这种转变很好。但是,在转换为ViewControllerB
后,ViewControllerA
的平移手势不再存在(因为现在我们位于ViewControllerB
)。这需要用户抬起手指然后开始另一个平移手势来移动ViewControllerB
的滚动视图。
我想要发生的是当用户平移到ViewControllerA
的滚动视图的末尾时,它会在转换后继续滚动ViewControllerB
的滚动视图,而无需用户抬起他们的手指仍然处于平移手势的中间。
我知道的一个问题是scrollviews有自己的无法设置的平移手势识别器。
我已尝试使用当前无效的委托的以下策略:
protocol MyPanGestureDelegate {
func panInViewControllerB(gesture: UIPanGestureRecognizer)
}
class ViewControllerA: UIViewController {
// ViewControllerB is assigned to 'gestureDelegate' below
var gestureDelegate: MyPanGestureDelegate!
override func viewDidLoad() {
super.viewDidLoad()
let panGesture = UIPanGestureRecognizer(target: self, action: #selector(panInViewControllerA(_:)))
self.view.addGestureRecognizer(panGesture)
gestureDelegate.panInViewControllerB(panGesture)
}
}
class ViewControllerB: UIViewController, MyPanGestureDelegate, UIGestureRecognizerDelegate {
// 'myScrollView' is an IBOutlet for said scrollview
func panInViewControllerB(panGesture: UIPanGestureRecognizer) {
myScrollView.addGestureRecognizer(panGesture)
}
}
// I've also set 'shouldRecognizeSimultaneouslyWithGestureRecognizer' to true
有没有办法在一个视图控制器中滚动滚动视图,转换到另一个视图控制器,并在一个平移手势中继续滚动另一个视图控制器中的滚动视图?