Как заставить UITableView (Controller) перехватывать события мультитач? - PullRequest
4 голосов
/ 12 января 2010

У меня есть подкласс UITableViewController, который работает как ожидалось. Я хотел бы захватить события мультитач для всей таблицы, чтобы что-то с ними сделать.

Как я понимаю, я должен сделать tableView контроллера подклассом UITableView. В этом классе я мог записывать события touchesMoved и т. Д.

Но я также понимаю, что UITableView - это подкласс UIScrollView, который перехватывает все сенсорные события, так что я их никогда не вижу.

Итак, есть ли какой-нибудь способ все еще добраться до тех событий мультитач для моего стола? В частности, я хотел бы реализовать что-то вроде сдвига / увеличения двумя пальцами и горизонтального перетаскивания одним пальцем.

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

РЕДАКТИРОВАТЬ: попытался с ячейками и смог увидеть некоторые горизонтальные события. Все вертикальные события, однако, полностью захвачены UIScrollView как прокрутки таблиц. Я не хотел бы взломать это, если есть какой-либо способ заставить UIScrollView отменить эти события ...

1 Ответ

2 голосов
/ 12 января 2010

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

РЕДАКТИРОВАТЬ: этот ответ устарел, поскольку современный способ сделать это, конечно, UIGestureRecognizers.

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