视图在移动时不会发生碰撞 ( Swift iOS )
Views doesn't collides while moving ( Swift iOS )
我正在尝试在我的应用程序中使用一些视图,我正在尝试通过相互碰撞来动画和碰撞这些视图,但问题是当我使用重力时,这些视图会发生碰撞
但是当我 drag/move 时,任何视图冲突都不起作用。我的代码出了什么问题这里是我的代码
移动视图
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)
提前致谢
我认为您不应该在视图附加到 UIDynamicAnimator 时直接操作视图。我认为您要么需要删除所有行为,要么在触摸点添加附着行为并在平移手势期间移动附着点。
(凭记忆,最近没怎么用过UIDynamics)
我正在尝试在我的应用程序中使用一些视图,我正在尝试通过相互碰撞来动画和碰撞这些视图,但问题是当我使用重力时,这些视图会发生碰撞 但是当我 drag/move 时,任何视图冲突都不起作用。我的代码出了什么问题这里是我的代码
移动视图
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)
提前致谢
我认为您不应该在视图附加到 UIDynamicAnimator 时直接操作视图。我认为您要么需要删除所有行为,要么在触摸点添加附着行为并在平移手势期间移动附着点。
(凭记忆,最近没怎么用过UIDynamics)