我想要做的是:它基本上是一个表格视图,显示一些具有许多值的单元格。
当选择一个值单元格时,它会打开包含所选值的子单值的新单元格。
它还可以让用户在这些单元格之间进行搜索。
我已经使用了很多UITableViews所以我没有选择,显示数据,处理事件等问题。 我从来没有使用带有搜索栏的表格视图,但是从很多教程中的红色看起来并不那么复杂。 所以我只需要2点帮助你。
感谢您的帮助。
答案 0 :(得分:1)
在值单元格中显示这些新单元格的最佳方法是什么 轻拍(当然,在重新挖掘价值的情况下再次隐藏它们 细胞)。
最简单的方法是在展开单元格时向数据阵列添加更多行,并在折叠时删除它们。自定义“子列表单元格”的外观并跟踪当前扩展的单元格。你也可以考虑使用https://github.com/OliverLetterer/UIExpandableTableView(我没有用它,所以不能真正评论它。)
最棘手的一点似乎就在这里,我该如何使用搜索栏 仅查看值单元格中的数据而不是单值单元格中的数据?对于 例如,如果用户已经从值中点击并打开了子值 如图2和5所示,如果他在搜索栏中插入“2”,则值为“5”的单元格 并且它的所有子值单元格都将被隐藏,但“2”将保留 与其子值一起显示。
我想说,这是更容易的部分。您负责搜索表格视图数据并向搜索显示控制器提供已过滤的列表。这是通过以下两种方法完成的:
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{
[self filterContentForSearchText: searchString
scope: [self.searchDisplayController.searchBar scopeButtonTitles][[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
}
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
{
[self filterContentForSearchText: [self.searchDisplayController.searchBar text]
scope: [self.searchDisplayController.searchBar scopeButtonTitles][searchOption]];
return YES;
}
在filterContentForSearchText:scope:
方法中,仅搜索“超级列表单元格”,而不搜索“子列表单元格”。您可以自定义搜索显示表的单元格,使其看起来像超级列表/子列表:UITableView Controller with prototype custom cell and search display controller tableview
希望这有帮助!
答案 1 :(得分:1)
在点击值单元格时显示这些新单元格的最佳方法是什么(当然,如果重新点击值单元格,则会再次隐藏它们。)
看看GitHub上的TLIndexPathTools project。这样可以轻松地轻松构建这样的动态表。最值得注意的是,它会自动批量更新以在状态之间进行动画处理。有几个示例项目,与您的情况最相似的是collapsable "Outline" project。