如何创建具有动态高度的可扩展单元?

时间:2015-07-15 08:08:40

标签: ios objective-c uitableview dynamic customization

我的项目中有两个字段用于提问,另一个用于回答。如何通过单击表格视图上的问题来显示答案。

1 个答案:

答案 0 :(得分:0)

您可以将每个可扩展单元格视为一个部分。对于每个部分,您只需使用不同数量的数据模型提供它并重新加载tableview,您可以看到tableview调整该部分中的行数。例如,您实现tableview数据源,如下所示:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return self.feedEntitySections.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.feedEntitySections[section] numberOfRows];
}

以第0节为例,展开时有3行,折叠时只有1行。您可以像这样实现扩展操作。

    //Expand section 0.
    [self expandSectionAtIndex:0];

    //Fold section 0.
    [self foldSectionAtIndex:0];

- (void)expandSectionAtIndex:(NSUInteger)idx
{
    self.feedEntitySections[idx].numberOfRows = 3;
    [self.tableView reloadData];
}

- (void)foldSectionAtIndex:(NSUInteger)idx
{
    self.feedEntitySections[idx].numberOfRows = 1;
    [self.tableView reloadData];
}

希望这能回答这个问题。