UITouch Нет касаний Перемещено легким движением касания

У меня есть объект просмотра, который я могу коснуться и получить действительное касание в touchMoved:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];

Если я слегка коснусь при перемещении объекта, срабатывает touchesBegan, и я вызываю touchesMoved, как и раньше, но на этот раз touch in touchesMoved равно нулю. Есть идеи, почему это происходит? Похоже, что легкое касание-скольжение по сравнению с касанием по какой-то причине приводит к тому, что touchesMoved [[event allTouches] anyObject] становится равным нулю.

Редактировать:

Вот еще немного информации об этой настройке. Когда происходит touchBegan, он находится на viewB, который немедленно удаляется из супервизора. Теперь отображается viewA. Здесь продолжается работа touchMoved. Но поскольку он начался в viewB, touchMoved для viewA ничего не делает, и, следовательно, равен nil. Как я могу продолжить движение, начатое в viewB, вниз в viewA?


person 4thSpace    schedule 15.06.2009    source источник


Ответы (1)


Есть ли причина, по которой вы не используете объект touches вместо [event allTouches]?

person Ed Marty    schedule 15.06.2009
comment
Нет. Я изменил его так, чтобы делать следующее: UITouch * touch = [touch anyObject]; CGPoint location = [touch locationInView: self.view];, что уводит меня немного дальше. Когда происходит касание-скольжение, положение x = 0, y = 0. Глядя на touch._locationInWindow, я вижу x = 123, y = 433. Как я могу использовать это последнее значение x? - person 4thSpace; 15.06.2009