2011-12-16 3 views
1

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

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; 
} 

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

ответ

1

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

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

0

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

Смежные вопросы