我有View(A)有两个子视图:视图B和视图C.视图(B)有UILongPressGestureRecognizer
,视图(C)有UIPanGestureRecognizer
,默认情况下是隐藏的。当我长按视图B时,会显示视图C(isHidden = false
)。
现在,当我长按视图B时,显示视图C但是其中定义的手势没有响应,视图B中定义的手势仍处于活动状态。
我希望能够在显示时回复{C}的UIPanGestureRecognizer
,当我发布触摸时,我希望结束两个手势UILongPressGestureRecognizer
的视图B和{{1}视图C。
有可能吗?
答案 0 :(得分:1)
我认为没有必要将UIPanGestureRecognizer添加到View(C),你可以在UILongPressGestureRecognizer句柄方法中识别手指位置。看一下示例代码
声明变量:
@IBOutlet var cView: UIView?
这是UILongPressGestureRecognizer句柄方法:
@IBAction func handleLongPressGesture(_ gesture: UILongPressGestureRecognizer) {
switch gesture.state {
case .began:
cView?.isHidden = false
case .changed:
if let cView = cView, cView.isHidden == false {
let location = gesture.location(in: self.cView)
print("Finger Location - (\(location.x),\(location.y))")
}
case .ended, .cancelled:
cView?.isHidden = true
default: break
}
}
代码执行您的要求。