ipad два UITableView с источником данных, связанным друг с другом

Необходимо отображать данные из одного источника данных в две разные таблицы, расположенные так же, как столбцы. Здесь, если первый uitableview загружается до строки 10, следующий uitableview должен начинаться с строки 11, а также, если первый uitableview прокручивается, следующий uitableview должен автоматически прокручивать данные на основе первого.


person kishore kumar    schedule 05.10.2011    source источник


Ответы (1)


Что ж, для загрузки ваших таблиц вы можете использовать метод cellForRowAtIndexPath и использовать теги для различения таблиц, а для таблицы 1 используйте [array1 objectAtIndex:indexPath.row], а для таблицы 2 используйте [array1 objectAtIndex:indexPath.row+10].

Теперь о совместной прокрутке таблиц. Я пробовал несколько методов, но мне это удалось:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{

    NSArray *tableCells = [table1 visibleCells];

    if ([tableCells count] > 0) 
     {
        NSIndexPath *index = [table1 indexPathForCell:[tableCells objectAtIndex:0]];
        [table2 scrollToRowAtIndexPath:index atScrollPosition:UITableViewScrollPositionTop animated:YES];
     }
}

Но вот что произойдет, когда вы закончите прокручивать одну таблицу, ваша вторая таблица начнет прокручиваться. Если вам нужна одновременная прокрутка, я попробовал метод - (void)scrollViewDidScroll:(UIScrollView *)scrollView, но он не работал должным образом. Если это решение поможет вам, я буду рад, но если вы найдете лучшее решение, дайте мне знать.

person Dip Dhingani    schedule 05.10.2011
comment
это действительно полезно, если массив одномерный, что, если он многомерный - person kishore kumar; 05.10.2011
comment
это отлично работает для простых таблиц, что, если у меня есть разделы и строки? - person kishore kumar; 05.10.2011
comment
Под многомерным массивом вы подразумеваете, что ваш массив содержит NSArray или NSDictionary в качестве своих объектов, потому что Objective C не имеет такой же концепции многомерного массива, как в C и C++. - person Dip Dhingani; 05.10.2011
comment
извините за неправильный комментарий, мой фактический смысл отражен в моем втором комментарии, где мои таблицы разделены на разделы и строки - person kishore kumar; 05.10.2011
comment
то это может многое изменить. Но если у вас есть только одна строка в каждом разделе, и вы просто используете разные разделы для целей графического интерфейса, это ничего не изменит. Но если у вас есть переменное количество строк в каждом разделе, вам придется разделить таблицы в соответствии с имеющимся у вас массивом. Но будет сложно точно. - person Dip Dhingani; 05.10.2011