Подтвердить что ты не робот

Вперед вертикальные свитки из UIScrollView в sibling UITableView

У меня есть контроллер представления с этой иерархией:

Контроллер просмотра:

  • UIScrollView (прокручиваемый по горизонтали)
  • UITableView (прокручивается по вертикали)

enter image description here

Я хочу переслать вертикальные свитки из моего UIScrollView в sibling UITableView, чтобы при прокрутке пользователя на UIScrollView вместо этого прокручивается UITableView. Какой был бы лучший способ сделать это?

Я пробовал эти:

  • Обнаружение вертикальной прокрутки в scrollViewDidScroll, она не вызывается, потому что contentOffset представления прокрутки не изменяется.
  • Подклассификация UIScrollView и переопределение touchesMoved, я не могу перенаправить касания к представлению таблицы, потому что у меня нет ссылки на него в этом классе.
4b9b3361

Ответ 1

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

UITableView* tableView = ...;
UIScrollView* scrollView = ...;
for (UIGestureRecognizer* r in scrollView.gestureRecognizers)
{
    for (UIGestureRecognizer* tableRecognizer in tableView.gestureRecognizers)
    {
        [r requireGestureRecognizerToFail:tableRecognizer];
    }
}

Ответ 2

Это сделает вашу прокрутку одновременно с UITableView и UIScrollView и применит блок @Stephen Johnson

 - (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer
 shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer
 {
     return YES;
 }