gpt4 book ai didi

ios - 使用 PanGestureRecognizer 在与另一个 View 碰撞之前检测 View 的最后一个中心点?

转载 作者:行者123 更新时间:2023-11-29 11:48:24 26 4
gpt4 key购买 nike

我有 2 个 View 并使用以下代码检测它们的碰撞。如果物体移动缓慢,它工作正常,即它给出运动中的坐标。但是,当通过手势高速抛出 View 时,中间坐标会被忽略。我只得到初始坐标和结束坐标。当 2 个 View 发生碰撞时,我希望它们彼此尽可能靠近。

func handlePan(_ pan: UIPanGestureRecognizer)
{
let view = pan.view
switch pan.state
{
case .began, .changed, .possible, .ended:
let point = pan.translation(in: view?.superview)
print(point)
let viewPoint = CGPoint(x: (view?.center.x)! + point.x, y: (view?.center.y)!+point.y)
prevCenterB = viewBlue.center
prevCenterR = viewRed.center
view?.center = viewPoint
if (viewRed.frame.intersects(viewBlue.frame))
{
print("Intersection")
let alert = UIAlertController(title: "Alert", message: "Collision of objects occured !!", preferredStyle: UIAlertControllerStyle.alert)
let actionOK = UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: nil)
let actionCancel = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil)
alert.addAction(actionOK)
alert.addAction(actionCancel)
self.present(alert, animated: true, completion: nil)
if view == viewRed
{
view?.center = prevCenterR!
}
else
{
view?.center = prevCenterB!
}
}
pan.setTranslation(.zero, in: view?.superview)
break
default:
break
}

}

最佳答案

可能值得一读 Ray Wenderlich's tutorial在 UIKit Dynamics 上。

关于ios - 使用 PanGestureRecognizer 在与另一个 View 碰撞之前检测 View 的最后一个中心点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42299241/

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