UIView, которые не обрабатывают свои события, передают их по цепочке.По умолчанию это передает их родительскому представлению и, если не обрабатывается (в конечном счете), их родительскому UIViewController.
UIScrollView ломает это (есть много вопросов по SO, вариации на тему «почему мое приложение»перестать работать, как только я добавлю UIScrollView?)
UISV решает, является ли событие для себя, и если нет, он передает его ВНИЗ (в свои подпредставления), если они не обрабатывают событие, UISV просто выбрасываетЭто ошибка.
В этом случае предполагается отбросить их обратно к своему собственному родительскому представлению - и, в конечном счете, к родительскому UIVC. AFAICT, вот почему так много людей запутываются: это не работает какзадокументировано (примечание: поскольку представления задокументированы; UISV просто «недокументирован» по этому вопросу - он не объявляет, что он намерен делать в этой ситуации).
Итак ...Есть ли легкое исправление для этой ошибки? Есть ли категория, которую я мог бы написать, чтобы исправить UISV в целом и избежать необходимости создавать "поддельные" подклассы UIView, которые существуют чистозахватить события и передать их туда, куда они должны идти?(что делает для подверженного ошибкам кода)
В частности, из документов Apple:
Если время срабатывает без значительного изменения положения, представление прокрутки отправляет события отслеживания вкоснулся подпредставления просмотра контента.Если пользователь затем тянет свой палец достаточно далеко до того, как истечет таймер, представление прокрутки отменяет любое отслеживание в подпредставлении и выполняет саму прокрутку.
... если бы я мог переопределить этот метод "если таймер срабатывает" и правильно его реализовать , я думаю, что смог бы исправить все мои экземпляры UISV.
Но: - считает ли Apple это «использованием частного API» (их описание «частного» бессмысленно в обычных терминах программирования, и я не могу понять, что они делают и не имеют в виду под этим) - кто-нибудь знаетчто это за метод или как найти его?(возможно, отладка скомпилированных классов ObjC для поиска имен символов)