Задачка со звездочкой =)


#1

Добрый день.
Столкнулся с интересным вопросом, т.к. в силу опыта не хватает знаний догнать самому как это сделать, то обращаюсь к вам - мудрые форумчане)

На картинке схематично нарисовал результат который должен быть в итоге. Я так понимаю что для этого нужно засунуть таблицу в таблицу ?
Смысл такой - при открытии экрана, мы делаем запрос, в котором получаем имена для полей под номерами 01, 02 и т.д. Полей этих может быть сколь угодно много, а может не быть вовсе.
Зная данные этих полей, для каждого из них мы можем сделать запрос и получить массив с данными text1,text2 и т.д., которые опть же могут быть а могут и нет))

Господа знатоки - внимание сам вопрос!
Как построить такую штуку, чтобы создавалась таблица с необходимым количеством ячеек динамически и для каждой 01, 02 и т.д строилась тоже своя таблица?
Буду премного благодарен за помощь)


#2

Наверно вы имеете ввиду вот это:

Там в комментариях есть ссылка на код


#3

Не совсем. Все ячейки должны создаваться динамически. Также не нужен эффект аккордеона.
Получаем данные JSON, парсим и создаем эти таблички. Это как мне кажется оно должно быть, может есть другое решение я просто не знаю.

С данными никаких проблем нет. Вопрос в том как эти таблички создавать???


#4

Не нужно тут создавать таблицу в таблице. Достаточно будет одной таблицы для этого всего.
01, 02 и т.д. это будут хедеры таблицы, text1, text2… это уже будут обычные ячейки для каждого хедера.
При первом запросе, заполняете массив хедеров, который будет указывать, сколько хедеров отобразить таблице. После чего делаете запрос на получение ячеек для каждого хедера, где уже заполняете другой массив, который будет содержать массивы ячеек, для каждого хедера. Тут можно и по другому, сами выберите способ.
Ну и соответственно после каждого запроса обновляете таблицу. Можно сделать это анимированно, что бы все красиво появлялось.


#5

Отсюда возникает другой вопрос. Я не могу одновременно наследоваться от UIViewController и UITableView. Мне нужен ViewController, т.к. в самом низу еще есть менюшка. А переопределить количество секций я могу только наследуясь от TableView.

Как-то так.
Или я чего-то не догоняю?
З.Ы. Если удобно - можете писать в telegram @dasapp. ) Буду безумно благодарен за помощь)


#6

Телеграмом не пользуюсь.

Не понял при чем тут наследование.
Создаете обычный UIViewController, в нем распологаете таблицуб свою менюшку и прочие элементы. У таблицы указываете делегат на данный viewController. После этого в этом ViewController’e делаете

extension ViewController: UITableViewDataSource, UITableViewDelegate {
    тут уже описываете все методы для работы с таблицей
}

#8

C секциями разобрался)) только теперь еще интересней стало(
Когда массивы задаются сразу - все отлично. Если я получаю данные из интернета, то приложение крашится с ошибкой index out of range по тем массивам, которые собственно и загружаются.

Можно как-то сначала дождаться загрузки, а потом создавать таблицу?


#9

Респектую :slight_smile:


#10

Массивы изначально будут пустые. Следовательно в таблицу нужно передавать 0 для хедеров и ячеек. После запроса, заполнить массивы и просто сделать reloadData(). Таблица сама уже подхватит данные из заполненных массивов.