【发布时间】:2015-04-02 01:24:48
【问题描述】:
GameScene.swift 内的touchesMoved 在几次调用(通常是三到四次)后不会被调用,即使我们一直在屏幕上滑动手指(即,从不将手指从屏幕上移开)。
我们创建了一个简单的项目,只有代码打印touchesMoved,没有问题。换句话说,touchesMoved 按预期工作,在我们滑动手指时继续被调用。
显然,项目中有一些代码/配置导致touchesMoved 在几次调用后停止被调用(并且没有调用 touchesEnd)。是什么原因造成的?
touchesMoved 未被调用的代码:
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
let curTouch = touches.anyObject() as UITouch
let curPoint = curTouch.locationInView(self.view)
println(curPoint)
}
【问题讨论】:
-
你需要检查 UIView 是否在视图层次结构中
-
@dimpiax 谢谢迪玛!你什么意思?此代码在 GameScene.swift 中。为什么 UIView 不在视图层次结构中,这意味着什么代码会导致这种情况发生,以便我们以后可以避免这种情况?
-
你能把你的代码或项目上传到github吗?
-
要回答您的问题,当检测到触摸并移动触摸时,会调用触摸移动。当您移除触摸时,它以 touchesEnded 结束。
-
可能你的触摸被取消了。你有没有尝试添加 touchesCanceled 方法来查看是否触摸到那里?
标签: ios iphone swift sprite-kit