我正在使用来自Locu的数据,如下所示:

{
  "menus": [
    {
      "menu_name": "Dinner",
      "sections": [
        {
          "section_name": "Starters",
          "subsections": [
            {
              "subsection_name": "",
              "contents": [
                {
                  "price": "6.00",
                  "type": "ITEM",
                  "name": "Soup of the Day"
                },


等等...

当有多个部分(它们直接映射到UITableView部分)并且每个部分都有一个包含项的子部分时,使用该结构实现UITableView是没有问题的。

我很难过的是处理相反的情况-当只有一个部分但有多个子部分时。

例子!

menu_name: Dinner
    section0: Starters
        subsection0: ""
            (items)
    section1: Salads
        subsection0: ""
            (items)
    section2: Entrees
        subsection0: ""
            (items)




menu_name: Beer & Wine
    section0: Beers
        subsection0: On Tap
            (items)
        subsection1: Bottled
            (items)


在这些示例中,Dinner菜单将轻松映射到UITableView部分,而numberOfSectionsInTableView:是所有部分的简单计数。但是,一旦将Beer&Wine菜单投入混合,假设所有菜单都处于一个长视图中,那么如何计算numberOfSectionsInTableView:的部分?以及如何计算numberOfRowsInSection的行?另外,我不认为UITableView甚至不能处理子节,那么您在那里做什么?只是显示一个没有行的节,然后再显示另一个节?

最佳答案

你是对的。确实不支持小节。您必须要有一点创意才能使其按您希望的方式工作。

本质上,您必须“模仿小节”。它们将像其他行一样是行,但可能会使它们的单元格看起来比其他单元格或类似的东西略有不同,阴影更深。

最终却需要更多的维护,因为您必须跟踪这些小节,就像常规行沿着其他行一样,同时尝试使它们看起来更像小节。

09-07 11:45