UITableView:将一行移动到空白部分

时间:2009-03-17 16:07:56

标签: iphone ios uitableview

我有UITableView一些空白部分。我希望用户能够使用标准编辑模式控件将行移入其中。到目前为止,我能做到的唯一方法是在我的“空”部分中设置一个虚拟行,并尝试使用tableView:heightForRowAtIndexPath:隐藏它,使虚拟行的高度为零。这似乎是一个1像素的行。我可以通过制作一个只有[UIColor groupTableViewBackgroundColor]填充的特殊类型的单元格来隐藏它,但是有更好的方法吗?

这都是UITableView的分组模式。

更新:看起来将行移动到空白部分可能没有任何技巧,但“敏感性”已经足够糟糕,你需要技巧才能使它可用于一般用户(谁赢了没有足够的耐心,可以慢慢地将行悬停在空白部分周围,直到发出咔嗒声。)

3 个答案:

答案 0 :(得分:1)

我发现在iOS 4.3中,虚拟行需要具有至少1个像素的高度,以便提供允许将行移动到该部分的所需效果。

我还发现只在第一节和最后一节需要虚拟行;介于两者之间的任何部分都没有这个问题。

看起来在iOS 5.0中,根本不需要虚拟行或特殊技巧。

答案 1 :(得分:0)

在管理编辑时,您可以监控表格视图是否处于编辑模式。在cellForRowAtIndexPath内使用该标志来决定天气是否显示“空白”行。在“常规”模式下,该行将不会显示,但是当用户点击“编辑”时,应再次调用cellForRowAtIndexPath,这次将决定显示该行。有关如何执行此操作的详细信息取决于您的数据源以及如何将其粘贴到显示器上。如果您没有再次接听电话,则可以手动注入包含insertRowsAtIndexPaths / deleteRowsAtIndexPaths和/或致电reloadData的行以强制刷新。

答案 2 :(得分:0)

我发现如果从heightForRowAtIndexPath方法返回-1.0,它将删除1像素行。