当然可以!UIGestureRecognizer
可以附加到多个视图上,但需要使用 UIGestureRecognizerDelegate
中的 gestureRecognizer(_:shouldReceiveTouch:)
方法来处理多个视图的触摸事件。
在 shouldReceiveTouch
方法中,我们可以返回 true
来允许触摸事件传播到其他视图,这样在多个视图之间就可以使用 UIGestureRecognizer
了。
例如,下面的代码将 UIPinchGestureRecognizer
附加到两个视图上:
let pinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(handlePinchGesture))
view1.addGestureRecognizer(pinchGestureRecognizer)
view2.addGestureRecognizer(pinchGestureRecognizer)
func handlePinchGesture(_ sender: UIPinchGestureRecognizer) {
// Handle the pinch gesture...
}
在 handlePinchGesture
方法中,我们可以获取到发送此手势的视图,并根据需要处理缩放手势。
除了 UIPinchGestureRecognizer
,还可以使用其他手势识别器,例如 UIPanGestureRecognizer
和 UILongPressGestureRecognizer
,这些手势识别器都可以在多个视图上使用。
希望这可以回答您的问题!
领取专属 10元无门槛券
手把手带您无忧上云