0

我试图为以下问题找到一个简单的解决方案。我有一个主视图,其中包含一个瓷砖。我想将它拖放到 UITableView 上。我已经可以使用 UIGestureRecognizer 对拾取和拖动进行编程。

现在我的问题是如何在表格视图中检测到有一个项目将被拖到它上面。例如,当瓷砖移到上面时,我想突出显示给定的行。

我尝试将 touchesMoved/Began/Ended 事件添加到 viewCell。当我将图块拖到它上面时,它们不会着火(换句话说,图块将 viewCell 的一部分隐藏在我的手指下)。当上面没有拖动瓷砖时,它们会被解雇。

有没有一种有效的hittest方法?

谢谢。

4

1 回答 1

0

这里有一大堆 UI 问题需要解决。

  • 一般来说,在 iPhone 上拖放是个坏主意。这很难做到,而且获得反馈也会有问题,因为你的手指会阻碍拖动操作
  • 使用表格的选定单元格表示“可丢弃性”可能会被应用商店评论者拒绝;它表示“我已经选择了这个单元格”,而不是“我会在上面放一些东西”

也就是说,您可能希望在“源”视图中管理所有触摸事件,并从那里发送表格消息,而不是尝试处理消息。一旦您的 -touchesBegan:withEvent: 在一个视图中被调用,所有后续的 -touchesMoved:withEvent: 和 -touchesEnded:withEvent: 都将被发送到该视图以进行该触摸的生命周期;转发它们会使所有相关人员感到困惑。

于 2010-03-18T10:13:44.857 回答