代码之家  ›  专栏  ›  技术社区  ›  Louie

使用标题时加载表节

  •  0
  • Louie  · 技术社区  · 16 年前

    我好像不能把我的头绕在这上面。我在谷歌上搜索了好几个小时,并在搜索我能联系到的例子。我有两个阵列。

    我的第一个NSmutableArray的名字是“Showdates”。

    I have 3 objects in here.
    Object 0: "Today, May 20th"
    Object 1: "Tomorrow, May 21st"
    Object 2: "Saturday, May 22nd"
    

    然后我的第二个NSmutableArray命名为“Showtimes” 我有大约15个对象,每个对象都有字符串。(我希望这有道理?) 每个对象的结构如下:

           Object 0:
              showID @"98022"
              eventID @"833"
              showTime @"1:30pm"
              showDate @"Today, May 20th"
              auditorium @"9"
              venue @"2991"
    
           Object 1:
              showID @"98222"
              eventID @"813"
              showTime @"2:30pm"
              showDate @"Tomorrow, May 21st"
              auditorium @"9"
              venue @"2991"
    
    Etc, etc, ....
    

    我的表视图中的头工作得很好,但我似乎无法理解如何将对象添加到“showtimes”数组中的正确头下。任何帮助都将不胜感激。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Endemic    16 年前

    细节

    首先,您需要实现 numberOfRowsInSection: 方法。 此方法将nsindexxpath(整数)的行作为参数。在表视图中使用时,nsindxpath具有属性 section 和 row . 你只需要得到 部分 属性并返回要在该节中显示的行数。例如:

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
       switch(section)
       {
          //This would represent your first section, "Today..."
          case 0: //implement logic to find how many data objects need to be represented as rows for this section
             break;
          //second section, "Tomorrow"
          case 1: //logic
             break;
          //third section
          case 2:  //logic
             break;
       }
    }
    

    现在你已经完成了,是时候实施了 cellForRowAtIndexPath: . 与前面的方法不同,这个方法将一个完整的nsindxpath作为参数,通常称为 indexPath 在文档中。只需使用属性访问器查找路径的部分 indexPath.section 和节内的行 indexPath.row .

    重要注意事项

    尽管如此,如果您重新排列ShowTimes数组中当前包含的信息,所有这一切可能会更容易一些。如果数组没有排序,那么(例如)我为每种情况显示的逻辑 浏览次数: 需要遍历整个数组并测试每个元素,以查看它是否属于被请求的表部分。我建议在显示表之前将ShowTimes数组拆分为三个单独的数组(每个部分一个),这样您所需要的只是一个简单的 count 在每种情况下调用相应的数组。实施 行索引路径的单元格: 也可以简化。

    总结

    这样想。方法如 numberOfSectionsInTableView: 和 浏览次数: 决定表中行的布局 很久以前 甚至在考虑数据之前加载一个单元格。当每个单元格即将显示时, 行索引路径的单元格: 根据单元格的nsindxpath,或者更具体地说,根据 部分 和 行 索引路径的属性。
    简而言之,将一个单元格链接到其内容的唯一方法是indexpath,以及 行索引路径的单元格: 决定如何建立链接。

    如需进一步阅读,请参阅 TableView Programming Guide . 具体来说,标题为“用数据填充表视图”的部分。

        2
  •  2
  •   jwkpiano1    16 年前

    在表视图的DataSource类中,需要实现方法TableView:CellForRowatindexPath:为表中的每一行提供单元格。使用

    [indexPath section]

    如果indexpath是传递到方法中的第二个参数,则可以确定请求的单元格属于哪个节(还需要实现numberofrowspeagon:通知表视图它应该在每个节中请求多少单元格)。希望有帮助。