在较低层上的对象上执行手势

时间:2016-04-20 13:54:55

标签: ios swift z-index uigesturerecognizer

我在屏幕上有两个可拖动的元素,tableview A和imageview B. A在层次结构中位于B之上并且必须始终保持不变。下图概述了该问题。

gestures on layers http://www.kettleholdings.com/gestures.jpg

在我开始编码之前,上面是一个可行且可信的解决方案,还是有某种聪明的优先级设置,如果交互位于A和B上,它将始终触发B手势?

由于

1 个答案:

答案 0 :(得分:0)

为了澄清,重复的答案帮助我找到了如下解决方案。

将手势放在主视图上,然后在手势识别器过程中确定手势执行位置的对象以及是否让手势执行任何操作。

func doLongPressGesture(sender: UILongPressGestureRecognizer) {    
    let touchLocation = sender.locationInView(self.view)
    if CGRectContainsPoint(myChosenObject.frame, touchLocation) {
        ....
    }
}