【问题标题】:kickstarting a touchesMoved/UIPanGestureRecognizer mid-move for a new view启动 touchesMoved/UIPanGestureRecognizer 中途移动以获得新视图
【发布时间】:2010-09-24 11:59:46
【问题描述】:

概念是用户点击视图中的图标,图标的副本会在用户的手指下弹出,他们可以拖动它直到他们抬起手指。为此,我希望以下内容

  1. 图标有触摸事件
  2. 添加透明全屏 UIView 并在其上粘贴包含图标的 UIImageView。
  3. 跟踪 touchMoves 或 uiPanGestureRecognizer 并移动 UIImageView 直到触摸起来

问题在于 touchMoves(和 uiPanGestureRecognizer)在用户抬起手指并将其放回原位之前不会跟踪。即正在发生的事情是:

  1. 图标有触摸事件
  2. 添加透明全屏 UIView 并添加一个 UIImageView 子视图,其中包含图标。
  3. 用户拖动手指但没有任何反应,因此他们抬起手指并再次拖动
  4. 跟踪 touchMoves 或 uiPanGestureRecognizer 并移动 UIImageView 直到触摸起来

显然,要让 UIView 识别拖动,它似乎必须源自 UIView。我尝试(天真地)将触地事件发送到透明视图,但它不起作用。

还有其他想法吗?

非常感谢...

【问题讨论】:

    标签: ipad uiview drag-and-drop uigesturerecognizer touchesmoved


    【解决方案1】:

    据我所知,除了开始拖动的视图之外,您不能使用任何视图开始拖动。对于那些有权访问的人,请查看 autoscroll WWDC 2010 项目。它们基本上是在表格单元格的视图上开始拖动,然后允许您将该 TableCell 拖出表格视图。它运作良好,可能是我要走的路线。

    【讨论】:

      【解决方案2】:

      诀窍是使用单个 UIPanGestureRecognizer。将一个添加到您的原始“图标”(UIView)并使用它来检测初始触摸和平移的开始。当 UIPanGestureRecognizer 进入 UIGestureRecognizerStateBegan 创建将动画拖动的视图。原始图标视图和处理程序将继续接收回调。您可以测试 UIGestureRecognizerStateChanged 并从原始处理程序中转换新的移动视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        • 1970-01-01
        相关资源
        最近更新 更多