我正在使用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)
我也尝试用self.view.superview
替换mainView
,但无济于事:
let window = UIWindow(frame: UIScreen.main.bounds)
let mainView = window.rootViewController?.view
我做错了什么?如何在全球范围内跟踪拖动的图像?
答案 0 :(得分:0)
为实现这一目标,您必须遵循程序。
首先,当panGesture
调用时,您必须创建view/imageview
self.view
(所以有)。
将snapsnot添加为view/imageview
的子视图(VC主视图)
要获得w.r.t主视图的视图位置,您必须使用snapshot。现在根据此设置快照框架。
您可以在此之后隐藏view/Imgview
,以便在用户互动中看起来像用户移动相同的panGesture
。
现在匹配你的形象,做你想做的事。
如果您想将该图片放在原始空间,请在用户从public class LocalizedAttribute<T> {
T value;
Locale locale;
}
结束时取消隐藏该图片。
希望你现在能够更清楚地了解你必须做的事情。