Делаем 1 UITableView прокручиваем в ту же строку, что и другой UITableView - PullRequest
1 голос
/ 14 июня 2010

У меня есть 2 UITableViews на моем экране.

Когда пользователь прокручивает 1 ... Мне нужно еще 1, чтобы прокрутить до той же строки.

Я предполагаю, что мне нужно найтиметод "tableViewDidScroll" ... и каким-то образом определить значение "whichRowIsDisplayed" ... и затем установить для другого tableView значение "displayThisSameRow".

Я не могу найти ни одного из этих 3 методов, которые мне нужны.

Справка!

(Изменить: в обеих таблицах всегда будет одинаковое количество строк)

1 Ответ

1 голос
/ 14 июня 2010

Если строки в ваших таблицах имеют одинаковую высоту, вы можете использовать методы UIScrollView для прямой установки contentOffset.

Реализуйте метод делегата scrollViewDidScroll: для обеих таблиц. Какая бы таблица ни выполняла вызов, установите соответствие contentOffset другой таблицы. Вы должны отслеживать, когда вы устанавливаете смещение, чтобы избежать ненужных вызовов.

// table1, table2, tableBeingScrolled all members
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
  if ( scrollView != tableBeingScrolled ) {
    if ( scrollView == table1 ) {
      tableBeingScrolled = table2;
      table2.contentOffset = table1.contentOffset;
      tableBeingScrolled = nil;
    }
    if ( scrollView == table2 ) {
      tableBeingScrolled = table1;
      table1.contentOffset = table2.contentOffset;
      tableBeingScrolled = nil;
    }
  }
}

Если таблицы имеют разную высоту строк, вы можете использовать ту же технику, но потребуется больше вычислений, чтобы выяснить, какое смещение назначить.

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