在Xcode中显示表格单元格下方的表格视图

时间:2015-03-26 01:50:42

标签: ios objective-c uitableview

我希望它能够实现一个像下拉菜单或有限的可扩展表视图一样工作的表视图。功能的一个例子是这样的:

每个主要细胞都有食品类别,意大利菜,中国菜,泰国菜等。细胞有一个标签(意大利语),旁边有一个数字,如:意大利语(5),意味着有5家意大利餐馆你的地区(你在市中心或其他地方)。该单元还具有指向下方的附件视图。当您点击单元格时,附件视图将指向上方,表格视图将显示在该单元格下方(并在下一个主单元格“中文”上方)。显示的表格视图将显示您所在地区的每个餐厅(每个单元格中有一个);它将像150-200像素的高度,我需要能够滚动它。当我完成滚动并查看餐馆时,我可以点击主单元格,“意大利语(5)”,视图将消失,附件视图再次指向下方。

我使用GitHub中的一些代码尝试了一个可扩展的表视图,但问题是这个方法只是向表中添加单元格。显示所有细胞(餐馆),从而进一步向下推动主细胞。我是否必须在每个主单元格之后使用类似于容器视图的东西,将其隐藏,并且仅在单击主单元格时出现?我应该把代码放在表视图控制器的这个函数中吗?

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

另一方面,如果有一个更简单的解决方案,我不想过度复杂化,所以任何关于最佳方法的建议都将非常感谢,谢谢!

1 个答案:

答案 0 :(得分:1)

您在评论中写的内容确实有用。您需要的两种方法如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    self.rowHeight = ...;
    [tableView beginUpdates];
    [tableView endUptates];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ...
    if (indexPath == selectedCellIndexPath)
    {
        return self.rowHeight;
    }

    return ...
}

修改

如果您想更改标签的文字,可以这样做:

[self.myLabel setText:@"Your new Text"]