2014-09-02 2 views
1

Я пытаюсь реализовать представление аккордеона с помощью UITableView. Я хочу, чтобы вложение вида до двух уровней. (Пример: Есть несколько Регионы Под каждой областью будет 0/несколько Местоположение и под каждым местоположением будет 0/несколько пользователей). Для реализации этого сценария я использовал вложенный UITableView. i.e Outer TableView (например, Table TableView) будет иметь свою ячейку в качестве другого UITableView (например, TableView Table), и каждая ячейка LocationTableView будет иметь в качестве своей ячейки другой UITableView (i.e TableView, отображающий список пользователей в каждом месте). Я приложил изображения для уточнения.установить высоту внешнего TableViewCell из внутреннего вложенного UITableViewCell

Ниже изображение Регионы являются разделами таблицы. (примечание: не однорядные сейчас в Tableview) Outer TableView

После нажатия 2-й раздел, т.е. раздел с именем области Я динамически обновит этот раздел и добавить ячейку (т.е. ячейка, которая содержит UITableView, показывающий местоположения)

Location List Tableview Но, это показывает пустое место под таблицей вида местоположения. Вместо этого я хочу что-то вроде этого, как показано ниже:

enter image description here

снова после нажатия на 0-й раздел (Location 0) внутреннего Tableview (т.е. TableView, содержащий список местоположения) Я динамически обновит этот раздел Tableview и добавить клеток (то есть ячейка, которая содержит UITableView, показывающий список пользователей при этом месте) взглянуть на рисунок ниже

Innermost tableview i.e userlist tableview

Он отлично работает. Теперь мой вопрос заключается в том, что я вычислил высоту внешней UITableViewCell в * - (CGFloat) Tableview: (UITableView *) Tableview heightForRowAtIndexPath: (NSIndexPath ) indexPath метод в зависимости от количества Расположение в пределах этого региона (т.е. клетки) и количество пользователей под каждым местоположением в этой отдельной ячейке региона. Проблема в том, что мне нужно скрыть/показать список местоположений и пользователей (все местоположения и список пользователей не отображаются сразу), как в соответствии с соглашением. Таким образом, высота внутреннего TableView увеличивается/уменьшается, поэтому оставляется пустое место внизу. Также я создал пользовательский UITableViewCell (т. Е. Создав отдельный файл nib для ячейки) для каждой внутренней ячейки, содержащей табличное представление как ContentView, и реализовал все методы UITableView Data Source и Delegate в соответствующем файле .m. Я хочу не показывать это пустое пространство.

Когда управление осуществляется во внутренних ячейках таблицы, я не могу установить высоту внешнего UITableView.

Надеюсь, вы поняли мою проблему. Пожалуйста, помогите мне. Спасибо!!!

+0

ли вы решить это? –

ответ

0

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

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

Я только изменил мой базовый код в соответствии с вашими данными

How to create an Accordion with UItableview under a UItableview?

источник можно найти здесь Accordion

Скриншот enter image description here

-anoop