我想这张图片会描述这个问题:
黄色视图具有附加的平移手势。
触摸是在红色区域启动的
手指被拖入黄色区域-但未启动平移手势
红色区域没有附加平移手势。
黄色区域附加了一个平移手势
绿色区域附加了一个平移手势
当用户开始向下拖动手指时-最终它将进入手势识别器所连接的区域(黄色)。
但因为触摸不是在黄色区域启动的-摇摄手势永远不会启动。
这个问题的解决方案是什么--不让黄色区域变大(即使是清晰的也不是一个好的选择,因为我不想让视图重叠)
谢谢
发布于 2014-02-20 19:04:58
我认为在这种情况下,最好的选择是将平移手势识别器添加到超级视图中,然后在平移处理方法中使用:
CGPoint panLocation = [recogniser locationInView:superView];
然后用下面这样的命令检查它在哪里:
if (recogniser.state == UIGestureRecogniserStateMoved) {
if (CGRectContainsPoint(yellowView.frame, panLocation)) {
// Do something
} else if (CGRectContainsPoint(greenView.frame, panLocation)) {
// Do something else
}
}
希望这能有所帮助:)
https://stackoverflow.com/questions/21905035
复制相似问题