Как определить, когда начинается горизонтальное пролистывание UITableView
У меня есть UITable с кнопкой в каждой ячейке.
Когда вы нажимаете на кнопку, что-то происходит.
Когда вы проводите пальцем влево по ячейке, контроллер навигации переходит к другому виду.
Проблема в том, что иногда эти две вещи пересекаются.
Приземление даже ждет, вероятно, полсекунды, прежде чем оно регистрирует касание.
Этого времени достаточно, чтобы зарегистрироваться, пока пользователь находится в середине пролистывания.
Я хочу сделать так, чтобы, если пользователь находится в середине пролистывания (возможно, скорость пальца пользователя превышает определенную величину?), Тогда я могу установить, чтобы кнопка была не щелкаемой.
Но я не знаю, как определить скорость прикосновения. Я думаю, что с комбинацией таймера и переменной, которая хранит местоположение старого прикосновения? Но я также не могу использовать средство распознавания жестов панорамирования, поскольку оно переопределяет функцию прокрутки на столе и функцию прокрутки вправо на контроллере вида.
2 ответа
Если вы установили для delaysTouchesBegan значение YES в распознавателе жестов, он не будет отправлять касания в представление до тех пор, пока жест смахивания не завершится неудачно. Это должно остановить касание, происходящее в то же время, что и удар.
Ты можешь использовать,
[yourButton setExclusiveTouch:YES];
чтобы избежать нежелательных сенсорных событий. Попробуйте при инициализации yourButton