UITableView的大纲视图

时间:2010-05-18 13:52:08

标签: iphone cocoa-touch uitableview ipad nsoutlineview

我需要从UITableView实现1级大纲视图。其中包含子项的单元格将具有“+”符号,如果用户点击它,则其下方的单元格应向下滑动,并且应显示当前所选行的子单元格。单元格的滑动应该是可见的,如果用户点击已经展开的行的“ - ”按钮,子单元格应该滑回到父级。

我尝试过谷歌搜索,但没有找到任何指示。

如果我是UITableView的子类,我应该如何开始?或者我应该实现自己的视图子类并处理那里的所有东西?

我觉得UITableView子类会更容易,因为它会为我们处理所有的行选择,但我无法弄清楚如何去做。

谢谢和问候, 拉吉

2 个答案:

答案 0 :(得分:2)

您不能将字典维护为数据源吗?字典举行字典数组。内部字典有两个键值对:

  1. isExpanded
  2. 儿童信息。
  3. 通过检查bool isExpanded,您将获得行数。您需要自定义单元格以添加按钮。它会对你有用吗?

    您可以通过将细胞内容轻微推向右侧来区分儿童细胞。

答案 1 :(得分:1)

您必须是子类和UITableViewCell

@interface OutlineCell : UITableViewCell

然后,在你的表的ViewController中

- (UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath: (NSIndexPath*) indexPath {
    NSString* MyIdentifier = @"MyIdentifier";

    OutlineCell* cell = (OutlineCell*) [tableView dequeueReusableCellWithIdentifier: MyIdentifier];
    if (cell == nil) {
        cell = [[OutlineCell alloc] init];
    }

    // Populate cell data
}

您可以通过IB定义界面,创建一个空XIB并拖动UITableViewCell,并将自定义OutlineCell类作为文件所有者。然后添加按钮,标签等。

编辑:如果你想要一个单元格中的内部表,尝试使用相同的方法将子视图添加到你定义的UITableViewCell,里面有一个UITableView。