Для Swift 3, основанный на ответе @ Andrew:
override func touchesMoved(_ touches: Set, with event: UIEvent?) {
let touchSet = touches
for touch in touchSet{
let location = touch.location(in: self.view)
print(location)
}
}
ИЗМЕНИТЬ, Мой плохой, не отвечающий на ваш вопрос, имел ту же проблему, и кто-то связал меня с этим предыдущим ответом :
В любом случае мне пришлось изменить несколько вещей, чтобы заставить его работать в swift 3, вот мой текущий код:
var fingers = [String?](repeating: nil, count:5)
override func touchesBegan(_ touches: Set, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
for touch in touches{
let point = touch.location(in: self.view)
for (index,finger) in fingers.enumerated() {
if finger == nil {
fingers[index] = String(format: "%p", touch)
print("finger \(index+1): x=\(point.x) , y=\(point.y)")
break
}
}
}
}
override func touchesMoved(_ touches: Set, with event: UIEvent?) {
super.touchesMoved(touches, with: event)
for touch in touches {
let point = touch.location(in: self.view)
for (index,finger) in fingers.enumerated() {
if let finger = finger, finger == String(format: "%p", touch) {
print("finger \(index+1): x=\(point.x) , y=\(point.y)")
break
}
}
}
}
override func touchesEnded(_ touches: Set, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
for touch in touches {
for (index,finger) in fingers.enumerated() {
if let finger = finger, finger == String(format: "%p", touch) {
fingers[index] = nil
break
}
}
}
}
У меня все еще есть небольшая проблема, но Я думаю, что это связано с моим GestureRecognizer в моем коде. Но это должно сделать трюк. Он будет печатать вам координаты каждой точки в консоли.
Я нашел решение.
$ gem install ruby-debug
$ ruby-debug rake my:task
или в некоторых системах
$ rdebug rake my:task