iPhone UITableView заполнение разделов переменных строк из плоского массива - PullRequest
0 голосов
/ 29 мая 2010

Я думал, что это будет очень распространенное и простое приложение для iPhone. В основном приложении я подключаюсь к базе данных, извлекаю значения из базы данных (NSDate преобразуется в NSString) n и помещаю в один массив. Затем в одном из представлений я заполняю UITableView элементами из массива. UITableView сгруппирован (разделы). Я шагаю по массиву, чтобы узнать количество разделов (изменить раздел, если новый день). Как получить правильный элемент массива в cellForRowAtIndexPath? IndexPath.section и IndexPath.row кажутся бесполезными, так как количество строк в каждом разделе начинается с нуля. Если бы количество строк в каждом разделе было одинаковым, это было бы легко:

[arryData objectAtIndex: (indexPath.row) + indexPath.section * [tblMatchesView numberOfRowsInSection: indexPath.section]];

Но количество строк в каждом разделе варьируется ...: -)

Ответы [ 3 ]

1 голос
/ 29 мая 2010

Разделите ваши данные на массивы массивов (на основе количества разных дней), как только вы получите их из базы данных, это будет самое простое решение ...

0 голосов
/ 18 июля 2012

У него нет абсолютного курсора, но вы можете попробовать использовать Класс UILocalizedIndexedCollation, который используется для облегчения «секционирования» ваших данных и проверки функций делегата tableView необходимых данных, таких как заголовки индекса и т. Д.

Вот ссылка на документацию к Apple: https://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalizedIndexedCollation_Class/UILocalizedIndexedCollation.html#//apple_ref/occ/cl/UILocalizedIndexedCollation

0 голосов
/ 29 мая 2010

Как насчет хранения разных разделов даты в разных массивах? Например, вы можете иметь массив A из массива. Вы можете перебрать исходные массивы самостоятельно, если вы нашли новый день, вы просто создаете новый массив и помещаете его в массив A. А затем, когда вы перебираете ячейку, вы можете получить номер раздела, чтобы получить правильный массив и на основе номера строки, чтобы получить правильный элемент в массиве

...