移动时视图不会发生碰撞(Swift iOS)

时间:2015-04-02 11:03:51

标签: ios swift collision-detection

我正在尝试在我的应用程序中使用一些视图,我试图通过互相击打来动画和碰撞这些视图,但问题是,当我使用重力时这些视图发生碰撞  但是当我拖动/移动任何视图时,碰撞都不起作用。我的代码在哪里错了我的代码

用于移动视图

  func tappedMe(gr: UIPanGestureRecognizer)
    {
        if gr.view?.tag == 1{    
                let point = gr.locationInView(self.view);
                square.center.x=point.x
                square.center.y=point.y
        }else if gr.view?.tag == 2{
            let point = gr.locationInView(self.view);
            square2.center.x=point.x
            square2.center.y=point.y
        }
    }

表示重力

animator = UIDynamicAnimator(referenceView: view)
    gravity = UIGravityBehavior(items: [square, square2])
            let direction = CGVectorMake(0, -1)
            gravity!.gravityDirection = direction
            animator.addBehavior(gravity)

对于碰撞

collision = UICollisionBehavior(items: [ square, square2])
            collision.translatesReferenceBoundsIntoBoundary = true
            animator.addBehavior(collision)

提前致谢

1 个答案:

答案 0 :(得分:2)

我不认为你是在将视图附加到UIDynamicAnimator时直接操纵视图。我认为您需要删除所有行为或在触摸点添加附件行为并在平移手势期间移动附着点。

(这是来自记忆,我最近没有使用过UIDynamics。)