2010-03-18 80 views
0

我试图为以下找到一个简单的解决方案。 我有一个主视图,其中包含一个图块。我想将它拖放到UITableView上。我可以用UIGestureRecognizer来编程和拖动。iPhone上的另一个拖放问题

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

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

有没有一种有效的测试方法呢?

谢谢。

回答

0

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

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

也就是说,您可能想要在'源'视图中管理所有触摸事件,并且从那里发送表格消息,而不是试图绕过消息。一旦你在一个视图中调用了-touchesBegan:withEvent:,所有后续的-touchesMoved:withEvent:和-touchesEnded:withEvent:将被发送到该视图的该触摸的生命周期;转发他们会混淆每个涉及的人。

+0

感谢Ben给出了答案。第一部分:我的应用将成为iPad应用。第二部分:我不明白你的意思。 为了让我的问题变得简单:我想将一张照片拖放到一个tableview行上。我开始拖动。完美的作品。但是,当我将照片拖到它们上方时,cellview的touchesBegan/Moved/Ended不会被调用。 那么,我怎么知道哪一行将得到的下降? – Teddy 2010-03-19 07:37:31

+0

您需要通过查看表格中每个单元格的框架来计算该值。也许在你的表或viewController上使用-cellForPoint:方法。 – 2010-03-19 13:18:32

+0

谢谢你,这是最终解决方案。我希望有一个更短的解决方案。 再次感谢。 – Teddy 2010-03-20 15:57:44