【问题标题】:Displaying data in expandable/collapsible UITableView from JSON (objective-c)从 JSON (objective-c) 在可扩展/可折叠 UITableView 中显示数据
【发布时间】:2017-02-07 16:11:15
【问题描述】:

我需要在最多 2 个级别的可扩展表格视图中显示来自 Web 服务的数据。虽然这对于静态数据是可能的,但我无法找到一种方法来处理从后端检索到的数据。 Postman 中的一个示例如下所示:

One Level UITableView Data in Postman

以上内容仅用于一级扩展。在这里,“会计”是主要类别,“jj 标签”、“认证公众”和“一般服务”是展开后可见的子类别(一旦用户点击名为“会计”的单元格)。同样,需要显示几个类别,并且可能包含也可能不包含第二级的进一步扩展。

至于网络服务,我可以选择以两种方式获取数据:

  • 在一个 API 中同时获取主类别和子类别(如上面的屏幕截图所示)。
  • 在不同的 API 中获取主类别和子类别。

到目前为止,我已经尝试实现titleForHeaderInSection 中的主要类别和cellForRowAtIndexPath 中的一级子类别

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return [[subCatArray objectAtIndex:section] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ceLL" forIndexPath:indexPath];
    cell.textLabel.text = [[subCatArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    return cell;
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return [catArray count];
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

    for (int i=0; i<[catArray count]; i++) {
        if(section == i){
            return NSLocalizedString([catArray objectAtIndex:i], nil);
        }
    }
    return nil;
}

但是我该如何进行第二级并使这些可折叠/可扩展?

【问题讨论】:

    标签: ios objective-c expandable-table


    【解决方案1】:

    在开始之前,我想将展开的单元格称为主单元格,将展开的单元格(即子类别单元格)称为辅助单元格。

    当您开始实施时,将主单元格作为标题。但是,如果没有在“numberOfRowsInSection”方法中给出该特定部分的 subCatArray 计数,您需要修改您计划在“numberOfRowsInSection”方法中返回其计数的数组。该数组应该是这样的,它应该只包含可见行的详细信息,即它最初应该有零个元素,然后点击说“Accountants”用“jj tags”、“Certified Public”和“等元素的详细信息修改数组General Services”,然后再次点击“Accountants”单元格使数组为空。要检测节标题上的点击,您可以放置​​一个框架等于“viewForHeader”框架的按钮,并将节索引作为按钮标签传递,或者您可以使用点击手势。确保在点击该部分时调用的选择器上重新加载表格。

    您可以简单地使用行来显示主要和次要单元格,但可以更改用于填充单元格的数组,而不是使用表格视图部分。

    【讨论】:

    • 您在一定程度上有所帮助,但这并没有解决第三级问题。
    • 感谢您的反馈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2019-10-09
    • 1970-01-01
    • 2016-08-17
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多