Ios 如何在uitableview中正确显示嵌套数组数据,并使用多个级别的节
我有以下json数据Ios 如何在uitableview中正确显示嵌套数组数据,并使用多个级别的节,ios,swift,uitableview,sections,Ios,Swift,Uitableview,Sections,我有以下json数据 { "Display_Selected List": [ { "product_name": "Product1", "items": [ { "item_name": "SubItem1", "specifications": [
{
"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"
}
]
}
]
}
]
}
根据设计要求,我必须将整个数据显示在单一视图中,如下所示
我已经创建了如下图所示的粗略设计
我可以通过uitableview
内部uitableviewcell
实现这一点,但是
根据苹果公司的建议,苹果公司不建议使用表视图 添加为其他可滚动对象的子视图 现在我的问题是如何通过单个uitableview实现以下设计,并且根据我的json,所有内容都是动态的
有人在附近见过这样的东西吗?任何参考都会很有帮助。如果您不想在
tableViewCell
中使用tableView
,可以使用以下方法
- 创建3个不同的单元格,第一个用于显示项目名称,第二个用于显示规范组名称,第三个用于显示规范项目(例如:Sp1、Sp2、…)
将具有正确的计数,以使用上述创建的单元格显示数据。因此numberOfRows应返回与rowsInSection= 项目数量+每个项目的规格数量+每个项目的每个规格列表数量numberOfRowsInSection
- 相应地更改数据源并进行条件检查,以便首先显示“项目名称”单元格,然后显示“规格组名称”单元格,然后显示每个规格中的规格项目,然后显示下一个项目名称,依此类推
如果您可以在
tableViewCell
中使用tableView
,这将很容易,在许多应用程序中,我都使用过这种方法,而且我没有遇到任何Apple review问题。如果您在tableView
内部使用tableViewCell
最好禁用滚动和反弹属性。如果每次都显示项目名称,则可以对产品使用headerview,然后还可以在标题中添加。对于项目和规格组,您可以使用本教程sapandiwakar.in/nested-sections-in-uitableviewno my产品应该是sectionHeader,因为有多个产品数组show product>Item>Specification>Listyes product&Item display每次都显示?但是如果项目没有任何规格,那么它会像此产品一样排列>Item second Items根据教程有Sports>Bat and ball>Basketball,但我有4个级别Apple不建议添加表视图作为其他可滚动对象的子视图,这就是为什么我没有按照您的答案使用tableview单元格的原因。在tableview单元格中使用tableview更好,或者在速度方面创建3个不同的单元格(在速度方面),我想使用3个不同的单元格会更好。但是管理数据源可能是一项挑战,我希望您能通过这种方法达到预期的结果。祝你好运:)