拖放 2 个不同的视图

Posted

技术标签:

【中文标题】拖放 2 个不同的视图【英文标题】:Drag and drop over 2 different views 【发布时间】:2013-01-08 15:01:59 【问题描述】:

我有以下似乎无法解决的问题:

在我的顶视图(菜单栏)中,我有一个UIButton,我希望用户按下它,然后将一个对象(生成良好的 OpenGL 对象)拖放到菜单栏下的视图中(一个EAGLView)。我的问题是我无法将用户按下按钮的触摸位置传递给EAGLView

我尝试了几种解决方案:

    将选择器分配给 UIButton 的 Drag-In-Touch 功能。这让我可以得到我想要的触摸位置,但这个位置只停留在持有UIButton(菜单栏)的视图范围内

    覆盖UIButtontouchesBegan/Moved/Ended,以便他们使用nextResponder.nextResponder 的触摸(使其成为EAGLView)。这似乎适用于touchesBegan,但当我尝试移动时,touchesMoved 被调用一次然后停止。

如果你们中的任何人能指出任何可能的方法来实现我想要的,我将不胜感激。

【问题讨论】:

【参考方案1】:

这里没有完全回答这个问题,但是您想要的可以通过添加 UIviews 而不是 UIButtons 并使用 Pangesture 识别器将它们拖到屏幕上来解决。然后,您只需在用户结束平移/拖动动作时在此视图下加载或放置所需的对象。

【讨论】:

以上是关于拖放 2 个不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

在具有 UITableView 的 UICollectionView 中拖放

UICollectionView 快速拖放

剑道树视图拖放使用相同的树组件

CGRect Contains Point 不适用于不同的视图

如何在同一个“主”视图中切换 2 个不同的视图? SwiftUI

Knockout 将 2 个链接绑定到不同的视图并切换模型视图