我有以下 json 数据
{
"Display_Selected List":
[
{
"product_name": "Product1",
"items":
[
{
"item_name": "SubItem1",
"specifications":
[
{
"list": [
{
"name": "Sp1"
},
{
"name": "Sp2"
}
],
"specification_name": "Specification Group 1"
},
{
"list": [
{
"name": "Sp3"
},
{
"name": "Sp4"
}
],
"specification_name": "Specification Group 2"
}
]
},
{
"item_name": "Sub Item2",
"specifications":
[
{
"list": [
{
"name": "Sp2"
}
],
"specification_name": "Specification Group 1"
},
{
"list": [
{
"name": "Sp3"
}
],
"specification_name": "Specification Group 2"
}
]
}
]
},
{
"product_name": "Product2",
"items":
[
{
"item_name": "Item1",
"specifications":
[
{
"list": [
{
"name": "Sp3"
},
{
"name": "Sp4"
}
],
"specification_name": "Specification Group 2"
}
]
}
]
}
]
}
根据设计要求,我必须在单个合适的 View 中显示整个数据,如下所示 我创建了粗略的设计,如下图所示
I can achieve this via
uitableview
insideuitableviewcell
but as per Apple recommendation Apple does not recommend table views to be added as subviews of other scrollable objects
现在我的问题是如何通过单个 uitableview 实现以下设计,并且根据我的 json 所有内容都是动态的
有人见过这样的事情吗?任何引用都会有帮助。
最佳答案
如果您不想在 tableViewCell
中使用 tableView
,您可以采用以下方法。
- 创建 3 个不同的单元格,第一个用于显示项目名称,第二个用于显示规范组名称,第三个用于显示规范项目(例如:Sp1、Sp2,..)
numberOfRowsInSection
将具有正确的计数,以使用上面创建的单元格显示数据。所以 numberOfRows 应该返回总计数,如 rowsInSection = 商品数量 + 每个商品的规范数量 + 每个商品的每个规范中的列表数量- 相应地更改数据源并进行条件检查,以便您将首先显示项目名称单元格,然后显示规范组名称单元格,然后显示每个规范内的规范项目,然后显示下一个项目名称,依此类推。<
我希望这种方法能够帮助您实现目标。
如果你可以在tableViewCell
中使用tableView
,那会很容易,在许多应用程序中我都使用过这种方法,而且我没有遇到任何Apple审核问题。如果您在 tableViewCell
中使用 tableView
,最好禁用滚动和弹跳属性。
关于ios - 如何使用多级节正确显示 uitableview 中的嵌套数组数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45626816/