gpt4 book ai didi

swift - UIPanGestureRecognizer 全局平移坐标

转载 作者:行者123 更新时间:2023-11-30 11:34:12 26 4
gpt4 key购买 nike

我正在使用 UIPanGestureRecognizer 将图像拖出 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

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

最佳答案

为了实现这一目标,您必须遵循程序。

  1. 首先,当 panGesture称为你必须创建一个 snapshot其中view/imageview (无论如何)。

  2. 将该 snapsnot 添加为 self.view 的 subview (VC主视图)

  3. 要获取 View 相对于主视图的位置,您必须使用 convert(_:to:) 。现在根据此设置快照的帧。

  4. 您可以隐藏您的 view/imageview在此之后,在用户交互中,看起来用户移动了相同的view/Imgview .

  5. 现在匹配您的形象并做您想做的事情。

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

希望现在您能更加清楚自己实际上必须做什么。

关于swift - UIPanGestureRecognizer 全局平移坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49936813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com