需要从JSON动态生成UITableView项。什么是最好的方法?

时间:2016-12-20 09:12:13

标签: ios objective-c swift xcode

假设我有一个像这样的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,因此我无法在Storyboard中设计它们。
  • 动态视图甚至可以是UIStackViews,因此我不能只创建一个主UIStackView并在其中添加这些视图。 (因为它非常糟糕。)
  • 数据源和结构不是问题。我的问题是如何构建UI和约束。

2 个答案:

答案 0 :(得分:1)

  1. 为每种受支持的元素

    创建自定义类型的UITableViewCell
    • LabelCell
    • 的ImageCell
    • 扣式
  2. 通过将每个元素(视图模型)的json内容传递到相应的单元格类型来生成表格视图单元格

  3. jsonContent = {     “type”:“UILabel”,     “数据”:“这是一个标题”,     “id”:“label1”     } LabelCell(视图模型:jsonContent)

    您可能需要使用卖出尺寸表视图单元格让单元格高度自动调整。

    检查此链接: https://www.raywenderlich.com/129059/self-sizing-table-view-cells

答案 1 :(得分:0)

步骤1:在收到JSON数据后立即将其解析为模型类。

第2步:该数据模型成为表视图的数据源。更改后,您将更新表视图。

步骤3:与每个表格视图一样,您可以使用方法从数据模型中填充表格视图单元格,这就是您所做的。

如何构建UI和约束:通过编写代码。