首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone:如何将长新闻手势和拖曳操作结合在一起?

iPhone:如何将长新闻手势和拖曳操作结合在一起?
EN

Stack Overflow用户
提问于 2011-09-22 17:58:54
回答 1查看 1.3K关注 0票数 5

我已经尝试了很多东西,此时发布代码可能会让人感到困惑,所以让我从这个概念开始。

我需要将长按压和触摸拖动的操作以某种方式合并到一个操作中,类似于LongPressThenDragGestureRecognizer。我试图在MKMapView上实现这一点,所以我不能一直禁用用户交互,因为我需要地图的pan和缩放功能。

更复杂的是,用户长时间按下以识别交互的初始项( MKOverlay对象)将需要删除并替换为新绘制的对象。在这一点上,代码不再关心对象了,只关心手指在任何给定点上的位置(我将在拖动对象移动时重新绘制对象)。

这就是工作流程:

在地图上向

  1. 用户展示了一个覆盖
  2. 用户触摸并保持该项目,以让应用程序知道他们想要拖动它
  3. 应用程序用一个绘制的对象替换覆盖并禁用地图,这样它就不会开始平移(而不是拖着手指,并且对象移动时会重画。
  4. 用户举起手指来完成拖放的

H 111 app用一个新的地图覆盖<代码>H 212H 113 app使用户在地图上的交互允许pan/缩放/注释选择等等。H 214/code>G 215)

到目前为止,我已经尝试了许多事情,但没有取得什么成功。我到目前为止取得的最好的结果如下所示。这是使用UILongPressGestureRecognizer在MKMapView对象上完成的(检查与覆盖的交集),然后重写touchesBegan以进行地图触摸拖动。

显示了appropriately

  • Map
  • 覆盖,用户成功地执行了一个长按压手势,该手势被识别为用户交互被禁用,覆盖被替换为绘制的operation
    • When必须提起手指并再次触摸以启动拖动operation
    • When用户升降机手指,绘制新的覆盖并再次启用地图交互

我是如此接近,我只是不知道如何将手势组合成一个,这样用户就不必举起他/她的手指,并再次触摸,以启动拖动。

任何想法都会受到极大的赞赏。

EN

回答 1

Stack Overflow用户

发布于 2012-08-01 10:58:06

如果这是一个像这样复杂的手势,我会倾向于完全避免使用手势识别器,然后移动到touchesBegan、touchesMoved、touchedEnded、touchesCancelled,其中有一种状态就是,当手势碰巧知道你在哪里时,你会移动。

MKMapView有一个UIResponder基类,所以应该很容易制作自己派生的MKMapView版本,它响应触摸事件(记住将它们传递给超级用户,映射以维护它的正常功能)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7519302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档