我想做的就是能够在屏幕上拖放精灵。我尝试了以下代码:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { } override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { for touch in (touches ) { let location = touch.locationInNode(self) if ball.containsPoint(location) { ball.position = location } } }
该代码确实起作用,但是,当我快速拖动球时,我猜它检测到“球”不再包含点“位置”并且球停止了,这意味着我又将球捡起了。我希望球能够快速响应我的触摸,从而使球不会停止移动。我该怎么做?
我有一个实现,其中我将UIImageView子类化,并将其称为“ DraggableImage”
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { originalPosition = self.center } override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { if let touch = touches.first { let position = touch.location(in: self.superview) self.center = CGPoint(x: position.x, y: position.y) } } override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { self.center = originalPosition }