Можно ли удалить задержку выделенного состояния UIButton внутри UIScrollView? - PullRequest
28 голосов
/ 24 сентября 2011

Я заметил небольшую задержку подсвеченного состояния UIButton при касании, если оно находится внутри UIScrollView (или табличного представления). В противном случае выделенное состояние является практически мгновенным.

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

1 Ответ

59 голосов
/ 25 сентября 2011

Действительно, это выбор дизайна. Это маленькое время нужно, чтобы отличить прокрутку (panGesture) от касания. Если вы устраните эту задержку, пользователь не сможет прокрутить его, если он поместит палец сверху кнопки, что не очень удобно для пользователя.

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

из документации UIScrollView

Я бы не рекомендовал отключать задержку, но если вы настаиваете, вы можете установить ее в конструкторе интерфейсов (выберите Scroll View и на правой панели прямо под «Bounces Zoom»), или используя этот код:

scrollView.delaysContentTouches = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...