2013-12-02 2 views
0

У меня есть UITable с кнопкой в ​​каждой ячейке.Как обнаружить, когда начинается горизонтальное прокручивание UITableView

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

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

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

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

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

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

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

+0

Насколько важно, чтобы кнопка распознавала прикосновение, а не касание? Используете ли вы распознаватель жестов или контрольные состояния? –

+0

Я использую контрольные состояния, на которые я верю. И очень важно, чтобы он был на прикосновении - кнопка меняет размер после того, как прикосновение даже называется – maxhud

ответ

0

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

[yourButton setExclusiveTouch:YES]; 

, чтобы избежать нежелательных событий прикосновения. Попробуйте, когда инициализируется yourButton

+0

Не делал ничего ... – maxhud

0

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

+0

Я думаю, что его проблема в том, что состояние UIControl меняется на салфетки, а не наоборот вокруг (знак признается в состоянии управления изменен) –

+0

Ваш комментарий подразумевает, что вы неправильно поняли, что будет делать этот код. Я бы ожидал, что состояние управления не изменится при использовании этого изменения, так как это остановит контроль, получающий события касания, до тех пор, пока распознавание салфетки не завершится. Вы пытались установить delayesTouchesBegan? – combinatorial

+0

Конечно. Он ничего не делал – maxhud

Смежные вопросы