UITableView не принимает проход через касания - PullRequest
2 голосов
/ 20 февраля 2010

Я пытаюсь передать прикосновения от пользовательского UIView к UITableView внизу (UIView находится прямо над UITableView). Тем не менее, это не похоже на работу.

В своем пользовательском UIView я попробовал все следующее (в качестве примера я использую touchesMoved, но я реализовал это для всех 4 сенсорных методов)

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
 {
  [self.nextResponder touchesMoved:touches withEvent:event];
 }

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {  [super
 touchesMoved:touches withEvent:event];
 }

Я даже пытался передать указатель на UITableView непосредственно в пользовательский UIView и сделать это:

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  [self.myTableView touchesMoved:touches withEvent:event];
 }

Кажется, что ни одна из этих опций ничего не делает, поскольку я не могу прокрутить UITableView. Есть идеи, почему это не сработает?

1 Ответ

1 голос
/ 20 февраля 2010

Если UIView не является подпредставлением UITableView, он не пропустит его, затрагивает цепочку респондента до UITableView.

Однако наиболее вероятным виновником является просмотр прокрутки. Scrollviews отлавливают все прикосновения перед отправкой их в subviews. Это в обратном направлении от обычной настройки.

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

Чтобы проверить это, я предлагаю поставить UIView «поверх», то есть сделать его подпредставлением обычного вида и заставить цепочку респондента работать так, как вы хотите. Затем поменяйте нижнее / суперпредставление на UITableView и посмотрите, работает ли оно по-прежнему.

Если это не так, проблема заключается в представлении прокрутки, в которое встроена таблица. Я не знаю, как это обойти.

...