Вперед вертикальные свитки из UIScrollView в sibling UITableView
У меня есть контроллер представления с этой иерархией:
Контроллер просмотра:
- UIScrollView (прокручиваемый по горизонтали)
- UITableView (прокручивается по вертикали)
![enter image description here]()
Я хочу переслать вертикальные свитки из моего UIScrollView
в sibling UITableView
, чтобы при прокрутке пользователя на UIScrollView
вместо этого прокручивается UITableView
. Какой был бы лучший способ сделать это?
Я пробовал эти:
- Обнаружение вертикальной прокрутки в
scrollViewDidScroll
, она не вызывается, потому что contentOffset представления прокрутки не изменяется.
- Подклассификация
UIScrollView
и переопределение touchesMoved
, я не могу перенаправить касания к представлению таблицы, потому что у меня нет ссылки на него в этом классе.
Ответы
Ответ 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;
}