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

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

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

有没有有效的命中测试方法?

谢谢。

有帮助吗?

解决方案

这里有一大堆用户界面问题需要解决。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top