如何使用多级部分正确显示uitableview中的嵌套数组数据

时间:2017-08-11 04:08:18

标签: ios swift uitableview sections

我有以下json数据

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="-50%p"
               android:duration="@android:integer/config_mediumAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0"
           android:duration="@android:integer/config_mediumAnimTime" />
</set>

根据设计要求,我必须将这些整个数据显示在单个合适的视图中,如下所示 我创建了粗糙的设计,如下图所示

enter image description here

  

我可以通过{ "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来实现此目的,但是   根据Apple的推荐,Apple不建议使用表格视图   添加为其他可滚动对象的子视图

现在我的问题是如何通过单个uitableview实现以下设计,并且根据我的json,所有内容都是动态的

有没有人见过这样的东西?任何参考都会有所帮助。

1 个答案:

答案 0 :(得分:2)

如果您不希望在tableView内使用tableViewCell,则可以采用以下方法。

  • 创建3个不同的单元格,首先显示项目名称,第二个显示规范组名称,第三个显示规范项目(例如:Sp1,Sp2,..)
  • numberOfRowsInSection将具有使用上述创建的单元格显示数据的正确计数。所以numberOfRows应该像rowsInSection =一样返回总计数 项目数+每个项目的规格数+每个项目的每个规格中的列表数
  • 相应地更改数据源并进行条件检查,以便首先显示项目名称单元格,然后显示规范组名称的单元格,然后在每个规范中显示规范项目,然后显示下一个项目名称等等。

我希望这种方法可以帮助你实现结果。

如果您可以在tableView内使用tableViewCell,那将很容易,在许多应用程序中,我使用过此方法,而且我没有遇到任何Apple审核问题。如果您在tableView内使用tableViewCell,最好禁用滚动和跳出属性。