Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift UIPAngestureRecognitor全局平移坐标_Swift_Uigesturerecognizer_Uipangesturerecognizer - Fatal编程技术网

Swift UIPAngestureRecognitor全局平移坐标

Swift UIPAngestureRecognitor全局平移坐标,swift,uigesturerecognizer,uipangesturerecognizer,Swift,Uigesturerecognizer,Uipangesturerecognizer,我正在使用uipangestureerecognizer将一幅图像从UICollectionViewCell中拖出,然后查看它是否与屏幕上其他地方的另一幅图像冲突。 为此,我需要能够匹配他们的翻译坐标。我的理解是,由于图像位于collectionView单元内,因此它是相对单元坐标跟踪的,我需要全局跟踪 |---------------------------------------| | _______ | | |_ima

我正在使用
uipangestureerecognizer
将一幅图像从
UICollectionViewCell
中拖出,然后查看它是否与屏幕上其他地方的另一幅图像冲突。 为此,我需要能够匹配他们的翻译坐标。我的理解是,由于图像位于collectionView单元内,因此它是相对单元坐标跟踪的,我需要全局跟踪

|---------------------------------------|
|        _______                        |
|       |_image_|                       |
|                                       |
|---------------------------------------|
|       |image|     Collection View     |
|---------------------------------------|
到目前为止,当我将图像拖到另一个图像上时,我会将其作为日志:

moved imageView center: (-44.0, -143.5)
destination imageView center: (440.0, 175.0)

let translation = panGesture.translation(in: self.view.superview)
self.view.center = CGPoint(x: self.initialLocation.x + translation.x, y: self.initialLocation.y + translation.y)
我还尝试用
mainView
替换
self.view.superview
,但没有效果:

let window = UIWindow(frame: UIScreen.main.bounds)
let mainView = window.rootViewController?.view

我做错了什么?如何在全球范围内跟踪拖动的图像?

要实现这一点,您必须遵循以下步骤

  • 首先,当调用
    panGesture
    时,您必须创建一个
    视图/imageview
    (无论是什么)

  • 将该快照添加为
    self.view
    (VC主视图)的子视图

  • 要获得视图的位置,必须使用w.r.t主视图。现在根据这个设置快照的帧

  • 在此之后,您可以隐藏您的
    视图/imageview
    ,以便在用户交互中,它看起来就像用户移动相同的
    视图/Imgview

  • 现在,匹配你的形象,做任何你想做的事情

  • 如果您想将该图像放在其原始空间,则当用户从
    panGesture
    结束时,取消隐藏该图像

  • 希望现在你能更清楚地知道你到底要做什么