Отображение / скрытие строк в разделах UITableView - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь создать UITableView, настроенный таким образом, чтобы при нажатии на раздел он скрывал строки из предыдущего раздела и отображал строки только что выбранного раздела.TableView настроен с данными из массива массивов, называемых menuItems.menuItems содержит несколько других массивов, включая contactInfoArray, clientInfoArray, jacketArray и shirtArray.В каждом из этих массивов objectAtIndex: 0 является заголовком раздела и эффективно действует как заголовок.

Так, например, когда приложение загружается, оно сначала должно показать все строки в contactInfoArray, но затем показатьObjectAtIndex: 0 (заголовок) для каждого из других массивов.Когда я затем нажимаю на одно из названий этих разделов, например: «Куртка», мне нужна таблица, чтобы скрыть contactInfoArray objectsAtIndexes: 1+, но не объект 0, в то же время (или с приемлемой задержкой), отображая coatArray objectsAtIndexes: 1 +.

Я добился желаемого результата, вызвав данные перезагрузки, но я хочу, чтобы анимация изменений не выполнялась, а reloadData этого не позволяет.Я не могу найти учебники или примеры кода, которые это делают.

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 12 февраля 2011

Спасибо моему хорошему другу Даррену за помощь в решении этой проблемы!

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section{
return (indexPath.section == currentSection) ? [[menuItems objectAtIndex: indexPath.section ] count] : 1;
} 

Все, что мне нужно было сделать, это установить немедленную переменную (в моем случае «currentSection», которая является целым числом) и установитьего значение в didSelectRowAtIndexPath: метод.Затем я настроил свою таблицу так, чтобы строка 0 раздела действовала как заголовок раздела.

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

...