2010-06-08 7 views
0

Я прочитал каждый ответ доступный на этот вопрос, что я мог бы найти, в том числе этот ответ здесь на SO: link textСгруппированные табличное пустой раздел

Самый известный пример того, что я пытаюсь сделать, вероятно, выглядеть подробный экран приложения «Контакты». У некоторых контактов есть номер телефона и адрес электронной почты, у других - несколько телефонных номеров, но нет электронной почты и т. Д. Мои данные поступают с удаленного сервера, а некоторые люди могут иметь номер телефона, другие могут иметь 3 адреса электронной почты, но не телефон, другие могут имеют 2 телефонных номера и 2 адреса электронной почты и т. д.

Любые предложения по обращению с этим, снова используя Контакты в качестве примера (сгруппированное представление таблицы с переменным числом разделов и переменными рядами для каждого раздела). В ссылке, которую я написал выше, один из ответов, который имеет смысл просто использовать deleteSections: withRowAnimation: но я не понимаю, как я хотел бы реализовать это в этом сценарии, так как я не использую commitEditingStyle, я просто хочу «удалить», которые на пустом месте.

Спасибо за ваше время.

ответ

1

Почему вы хотите создать пустые ячейки, просто чтобы удалить их снова? Напишите класс, который форматирует ваши извлеченные данные в объект данных, который ваш UITableViewController понимает, скажем, в SectionDataObject.

Прежде всего, определите некоторые разделы, например. секция по электронной почте, раздел номера телефона и т.д. Пусть ваш SectionDataObject держать массив для каждого из этих категорий раздела, emailsArray, phoneNumbersArray и т.д.

Теперь во всех методах делегата вы просто ссылаться на различные массивах SectionDataObject , Это больше не является проблемой, если пользователь получил 15 писем, и ни номер телефона, то emailsArray вернет счетчик 15 и phoneNumberArray возвратит отсчет 0.

0

Просто вернуть 0 из - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section для секций, которые пусты.

+0

Привет, спасибо за сообщение. Возврат 0 в numberOfRowsInSection оставляет заметную пустую область, где раньше был раздел. – CraigH

+1

Тогда вы могли бы сохранить изменяемый массив массивов в качестве источника данных для вашей таблицы. Верхний массив будет представлять разделы, а внутренний будет представлять ячейки под разделами. Таким образом, ваш верхний массив будет содержать точное количество разделов (в соответствии с данными - если нет данных для одного из разделов, то для этого раздела в верхнем массиве не будет элемента). –