Почему мой вложенный UITableView не возвращается должным образом? - PullRequest
1 голос
/ 16 декабря 2011

У меня есть UITableView, чьи ячейки содержат UITableView, которые повернуты на 90 ° (поэтому они прокручиваются из стороны в сторону), как описано здесь:

http://marcanton.io/blog/nested-orthogonal-tableviews/

КогдаЯ прокручиваю одну из ячеек до конца (например, до левого или правого края содержимого), она отскакивает, как и ожидалось.Но если он уже в конце, и я пытаюсь прокрутить дальше конца контента (например, он прокручивается полностью вправо, и я пытаюсь прокрутить дальше вправо), он вообще не отскакивает, а иногда ошибочноинтерпретирует попытку прокрутки как касание.

То же самое происходит, если я создаю UIScrollView, который содержит еще один UIScrollView, повернутый на 90 °, поэтому возникает проблема с вложенными представлениями прокрутки,а не только табличные представления.

Я попытался создать подкласс UITableView и переопределить все UIGestureRecognizerDelegate методы, например, так:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    return YES;
}

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

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    return YES;
}

Но это не имеет никакого эффекта (кроме разрешения одновременного горизонтального и вертикальногопрокрутка, которая мне не нужна).

Ответы [ 2 ]

1 голос
/ 17 декабря 2011

Это связано с тем, что внутренние таблицы повернуты на 90 градусов.Наблюдаемое поведение с подпрыгиванием (и его отсутствием) полностью соответствует вложенному представлению прокрутки, которое прокручивается вдоль той же оси, что и его суперпредставление.

В пользовательском интерфейсе представления внутренней и внешней таблиц выглядят для прокрутки поосей, но за кадром, из-за преобразования вращения, они оба прокручиваются вдоль своей собственной оси Y.Таким образом, система обрабатывает их так, как если бы они прокручивались вдоль одной оси.

0 голосов
/ 17 мая 2012

Я обнаружил, что оборачивание повернутого UITableView в UIScrollView решило проблему (не уверен, почему это не сработало для вас).

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