Если строки в ваших таблицах имеют одинаковую высоту, вы можете использовать методы 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;
}
}
}
Если таблицы имеют разную высоту строк, вы можете использовать ту же технику, но потребуется больше вычислений, чтобы выяснить, какое смещение назначить.