Вопрос

Предположим, я касаюсь экрана iPhone двумя пальцами, но движется только один.

touchesMoved покажет только один палец (событие).

Как мне узнать, какой из двух пальцев touchesMoved тоже имеет в виду?

Это было полезно?

Решение 2

Я обнаружил, что можно делать то, что я хочу.Просто проверьте курс Стэнфорда CS193P на iTunesU.

Другие советы

К сожалению, если задуматься, не существует «определенного» способа связать один палец с одной точкой касания.В конце концов, дело не в том, что ваши пальцы имеют глобально уникальные идентификаторы, которые iPhone может скопировать.

Что вам нужно сделать, так это вести учет «предыдущих» мест, что в любом случае полезно для управления зажимами и другими вещами, и помечать каждый палец в зависимости от близости к предыдущим установленным касаниям.

Сначала включите мультитач на вашем UIView:

self.multipleTouchEnabled = true

Тогда держите словарь для UITouch объекты.Одинаковый UITouch объекты передаются в touchesBegan, touchesMoved, и touchesEnded:

var touchTypes = Dictionary<UITouch, Int>()

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    for touchObject in touches {
        touchTypes.updateValue(i, forKey: touch as UITouch) //determine i for your own implementation
    }
}

override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
    let type = touchTypes[touch] //depending on this value, do something
}

override func touchesEnded(touches: NSSet, withEvent event: UIEvent) {
    for touchObject in touches {
        touchTypes.removeValueForKey(touchObject as UITouch)
    }
}

Вы получаете прикосновения как NSSet * из TouchesBegan вам нужно будет просмотреть все касания и поместить их в контекст вашего приложения, чтобы вы могли идентифицировать их позже.

Было бы гораздо проще Вам помочь, если бы Вы описали свое намерение...

Вы написали

touchesMoved покажет только один палец (событие).

но на самом деле это не так:пока два пальца касаются экрана и хотя бы один из них движется, вы будете получать touchesMoved с и то , и другое пальцы.

если временно поднять один палец, вы можете получить несколько touchesMoved звонит всего одним пальцем, так что вам нужно решить, что с этим делать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top