2016-12-20 2 views
-3

Допустим, у меня есть массив объектов JSON как это:Нужно динамически генерировать элементы UITableView из JSON. Каков наилучший подход?

{ 
    "views": [ 
    { 
    "type": "UILabel", 
    "data": "Here is a headline", 
    "id": "label1" 
    }, 
    { 
    "type": "UIImage", 
    "data": "http://doge2048.com/meta/doge-600.png", 
    "id": "image1" 
    }, 
    { 
    "type": "UIButton", 
    "data": "Click me", 
    "id": "button1" 
    } 
    ] 
} 

Это, как этот элемент должен выглядеть, например. This is how this item should look like for example.

  • Каждая ячейка таблицы будет иметь различный JSON, поэтому я не могу конструировать их в раскадровку.
  • Динамические представления могут быть даже UIStackViews, поэтому я не могу просто создать основной UIStackView и добавить их в него. (Потому что он очень сильно отстает.)
  • Источник данных и структура не являются проблемой. Мой вопрос заключается в том, как создать пользовательский интерфейс и ограничения.
+0

Вы получаете массив NSDictionary как ваш ответ JSON? – nothingwhatsoever

+0

Это не имеет значения. Я уже отлично справляюсь с JSON. Проблема заключается в создании пользовательского интерфейса. –

+0

Просто вам нужно сериализовать ответ json и передать эти данные в метод datasource tableview + создать пользовательскую ячейку для отображения ваших данных в tableview. – CodeChanger

ответ

1
  1. Создание пользовательского типа UITableViewCell для каждого типа поддерживаемого элемента

    • LabelCell
    • ImageCell
    • миниатюрный элемент питания
  2. Сформировать представление таблицы клеток путем передачи JSON содержимое каждого элемента (модель представления) до соответствующий тип клеток

jsonContent = { "типа": "UILabel", "данные": "Вот заголовок", "идентификатор": "Label1" } LabelCell (ViewModel: jsonContent)

Возможно, вам понадобится Продать ячейку таблицы размеров таблицы, чтобы высота ячейки автоматически настраивалась автоматически.

Проверить эту ссылку: https://www.raywenderlich.com/129059/self-sizing-table-view-cells

0

Шаг 1: разбирает JSON данных в модели классов сразу после его получения.

Этап 2: Эта модель данных становится источником данных в виде таблицы. Когда он изменяется, вы обновляете представление таблицы.

Шаг 3: Как и в каждом представлении таблицы, у вас есть методы для заполнения ячеек таблицы данных из модели данных, так что вы это делаете.

Как создать пользовательский интерфейс и ограничения: путем написания кода.

Смежные вопросы