1

我正在尝试创建一个包含 STATES 和 CITIES 的 UITableview。首先,我希望表格只显示状态,每个值在单元格的右侧都有一个向下的披露箭头,让用户知道它下面有值。如果用户单击箭头,表格将展开以显示与所选州关联的 CITIES。然后用户可以选择一个城市,或者点击一个向上的披露箭头,然后“隐藏”这些城市。

我已经下载并查看了 Apple 的“表格视图动画和手势”示例。我希望有人可能知道一种更简单的方法来完成我所要求的。

http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html

4

3 回答 3

2

很好地解释了你想要做什么。这就是我解决这个问题的方法,我认为在不给你无意义的代码并回答你可能遇到的任何编码问题的情况下解释它会更容易。

我会将表视图数据源设置为数组数组。这个想法是数组中的每个索引都代表一个州,因此包含许多城市,因此索引包含一个数组(城市数组)。父数组(州)在开始时为空,但稍后将填充它的(城市)数组将填充适当的城市。

然后我将设置表格视图以包含部分(我很想在这里放代码,但请继续阅读)。这些部分将代表城市。(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section然后,您可以使用委托填写带有部分的表格视图 。在第一次运行时,您可以在每个部分使用一个单元格填充实际表格(可能使用“扩展”或“更多”一词和向下箭头)。当用户触摸该单元格时,您可以使用 didselectrowatindexpath 知道哪个部分被触摸(indexpath 对象包含该部分),现在您知道它是哪个部分,只需通过添加该部分的城市数组来修改数据源数组数组(父数组)并更新表格视图。

这基本上为您的 tableview 提供了相应的样式和感觉。它很容易实现,但需要一点代码。我已经这样做了,并且愿意提供您可能需要的代码,最棘手的部分是以正确的方式更新 tableview。

编辑代码:

我按照上面的解释做了一个简单的例子。代码在Github上,如有任何问题,请随时提出。

于 2012-10-25T18:56:17.767 回答
0

我认为表示这些信息的更好方法是让 UITableView 包含状态,每个状态都显示一个指向右侧的小箭头。然后,当用户单击该州时,加载下一个 UITableView,显示该特定州的所有城市。使用 UIViewController 推送 City 列表将允许用户轻松返回 States 列表。

这种方法对 iOS 用户更有意义,因为这是他们期望 Tables 工作的方式。

有很多教程解释了如何使用 UITableView。是一个包含许多 UITableView 教程的站点的链接。我链接到的教程解释了将 UIViewController 推入堆栈,以便有一个简单的后退按钮返回状态列表。

于 2012-10-25T18:33:23.510 回答
0

通常这样的事情是通过切换到另一个视图并显示有关单元格的更多细节来完成的。

你想要你可以通过实际制作自定义来实现,UITableViewCell其中包含UIButton箭头图像和UITableView. 如果第一次单击按钮,您可以重新加载您的单元格并创建UITableView可以显示城市的内部。再次单击只会再次重新加载单元格,而根本不会返回内部UITableView。您还需要将选定状态保留在某处,因为您可能必须重新加载前一个单元格并隐藏内表,以防单击其他单元格中的箭头。

于 2012-10-25T18:37:02.150 回答