我是使用XCode和Objective-C开发的新手,我希望你能帮助我。
问题是,我有一个带有UITableView的UITableViewController(使用InterfaceBuilder创建)。
节标题下的单元格是可扩展的。
现在我想在现有的TableView下动态创建多个UITableView。
样式与现有的TableView样式相同。
您能告诉我如何以编程方式创建这些TableView吗?
非常感谢
迈克尔
答案 0 :(得分:0)
根据您的说法尝试使用分组表格视图。查看此链接以获得快速概述,并转到分组表视图部分。
编辑发现此示例here:
好像它正是你要找的东西。还有一个非常酷的想法。
您必须只创建自己的自定义标题行,然后将其作为每个部分的第一行。对UITableView或其上的标题进行子类化现在可能会非常痛苦,我不确定您是否可以轻松地按照它们现在的工作方式从中获取操作。您可以轻松地将单元格设置为LOOK,如标题,并设置tableView:didSelectRowAtIndexPath
以展开或折叠其手动部分。
如果我是你,我会存储一系列对应于"消费"每个部分的价值。然后,您可以在每个自定义标题行上设置tableView:didSelectRowAtIndexPath
来切换此值,然后重新加载该特定部分。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
///it's the first row of any section so it would be your custom section header
///put in your code to toggle your boolean value here
mybooleans[indexPath.section] = !mybooleans[indexPath.section];
///reload this section
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationFade];
}
}
然后设置您的号码numberOfRowsInSection
以检查mybooleans
值,如果该部分未展开,则返回1,或者该部分中的项目数量为1+如果它被扩展。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (mybooleans[section]) {
///we want the number of people plus the header cell
return [self numberOfPeopleInGroup:section] + 1;
} else {
///we just want the header cell
return 1;
}
}
您还必须更新cellForRowAtIndexPath
以返回任何部分中第一行的自定义标题单元格。