将 UIView 从 UIPopOverController 中的 UIScrollView 拖放到主 UIViewController?

Posted

技术标签:

【中文标题】将 UIView 从 UIPopOverController 中的 UIScrollView 拖放到主 UIViewController?【英文标题】:Drag and Drop UIView from a UIScrollView within a UIPopOverController to main UIViewController? 【发布时间】:2011-10-06 23:46:49 【问题描述】:

好的,我无法让它正常工作。如果有人成功地做到了这一点,并且愿意分享代码,我将永远欠你的债!

这就是我想要做的......

我有一个主 ViewController,我从中创建 UIPopoverController。此 PopOverController 包含一个包含 UIImageViews 的视图。这些 UIImageView 是在我的 PopOverController 的 viewDidLoad 方法中以编程方式创建的。我试图让 UIView 从我的 PopOverController 中的 popoverView 平移到呈现 PopOverController 的主 ViewController。

我得到它的工作有点......

当 UIImageView 被平移时,我创建一个 UIWindow 并将该 UIImageView 作为子视图添加到新窗口中。然后我可以在 PopOverController 之外平移 UIImageView,并在手势结束状态下,从我创建的窗口中删除 UIImageView 并将其添加到 keyWindow。但是,当我这样做时,UIImageView 会逆时针旋转,并且该视图/窗口的平移不会在手指下开始。我也不确定为什么会这样。我确信这两个问题都是我所缺少的同一个主要问题的一部分。

我创建了一个单独的项目,其中只有我无法正常工作的部分。如果您感到无聊并愿意接受挑战以使其正常工作。这里是link 以下载该项目。

【问题讨论】:

【参考方案1】:

我还没有完全解决您的问题,但我查看了项目并解决了(在您的设置中)旋转后的 UIImageView 最初没有出现在正确位置的问题。转换rect时需要使用该片的superview,即(popupcontroller.m中的第72行)

newPiece.frame = [piece.superview convertRect:piece.frame toView:dragAndDropWindow]; 

希望这会有所帮助。

【讨论】:

以上是关于将 UIView 从 UIPopOverController 中的 UIScrollView 拖放到主 UIViewController?的主要内容,如果未能解决你的问题,请参考以下文章

将形状从 UIView 复制到另一个 UIView

将图像从 TableView 传递到 UIView

将 UIGestureRecognizer 的所有事件从一个 UIView 传递到另一个 UIView(子视图)[重复]

如何将用户从非 UIView 类推送到 ViewController [重复]

将 UIView 坐标从纵向转换为横向,反之亦然

将触摸事件从 uiview 传输到 uiwebview