Как определить, когда начинается горизонтальное пролистывание UITableView

У меня есть UITable с кнопкой в ​​каждой ячейке.

Когда вы нажимаете на кнопку, что-то происходит.

Когда вы проводите пальцем влево по ячейке, контроллер навигации переходит к другому виду.

Проблема в том, что иногда эти две вещи пересекаются.

Приземление даже ждет, вероятно, полсекунды, прежде чем оно регистрирует касание.

Этого времени достаточно, чтобы зарегистрироваться, пока пользователь находится в середине пролистывания.

Я хочу сделать так, чтобы, если пользователь находится в середине пролистывания (возможно, скорость пальца пользователя превышает определенную величину?), Тогда я могу установить, чтобы кнопка была не щелкаемой.

Но я не знаю, как определить скорость прикосновения. Я думаю, что с комбинацией таймера и переменной, которая хранит местоположение старого прикосновения? Но я также не могу использовать средство распознавания жестов панорамирования, поскольку оно переопределяет функцию прокрутки на столе и функцию прокрутки вправо на контроллере вида.

2 ответа

Если вы установили для delaysTouchesBegan значение YES в распознавателе жестов, он не будет отправлять касания в представление до тех пор, пока жест смахивания не завершится неудачно. Это должно остановить касание, происходящее в то же время, что и удар.

Ты можешь использовать,

[yourButton setExclusiveTouch:YES];

чтобы избежать нежелательных сенсорных событий. Попробуйте при инициализации yourButton

Другие вопросы по тегам