【问题标题】:Detecting the last center point of View before it's collision to another view using PanGestureRecognizer?使用 PanGestureRecognizer 在与另一个视图发生冲突之前检测视图的最后一个中心点?
【发布时间】:2017-07-07 01:22:17
【问题描述】:

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

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
        }

    }

【问题讨论】:

    标签: ios swift3 uipangesturerecognizer 2d-games xcode8.2


    【解决方案1】:

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

    【讨论】:

    • 谢谢@Maarut。我已经阅读了 Ray 的教程,但它为我提供了一种处理黑白对象碰撞的方法。但是,我想知道一种使用 PANGesture 来解决这个问题的方法。进一步的帮助将不胜感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多