У меня есть 2 вида и обнаружение их столкновения с использованием следующего кода. Он работает нормально, если объект перемещается медленно, то есть он дает координаты в движении. Однако, когда представление бросается с высокой скоростью жестом, координация по середине становится незаметной. Я получаю только начальную и конечную координаты. Когда изображение 2 сталкивается, я хочу, чтобы они были как можно ближе друг к другу.Обнаружение последней центральной точки зрения перед ее столкновением с другим видом с помощью PanGestureRecognizer?
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
}
}
Спасибо @Maarut. Я просмотрел учебник Рэя, но он дает мне способ обрабатывать объекты b/w столкновений. Но, я муравей, чтобы знать способ выяснить это, используя PANGesture. Дальнейшая помощь будет оценена! –