重新排序单元格 - 停止工作
好吧,这问题有点含糊措辞,但我喜欢一个谜! :-)
我想他是说当他进入“编辑”模式时,三条小线出现在每个细胞旁边,但是当他试图“拾取”一个细胞时,它不会移动。
最关键的事情donodare是确保你已实现了以下方法在你的tableview控制器类:
// Override to support conditional rearranging of the table view.
- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the item to be re-orderable.
return YES;
}
这将使清理。
请注意,您必须处理用户重新排列后发生的情况,否则在“放开”单元格时,它只会回弹到它来自的位置。
你应该做的是在你的tableview控制器类中重写以下方法:
// Override to support rearranging the table view.
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
// Custom code. NOTE - do not call ReloadData in this method or your app will crash!
}
希望帮助
做到了。 不工作。 – Shay 2009-08-06 06:37:45
我有一个类似的问题,和这个职位似乎是唯一相关谷歌命中。
我在模拟器中工作得很好,但在iPhone上不允许单元格重新排序。
在设备上,出现拖动手柄(因此canMoveRowAtIndexPath:设置正确)。在拖动控制柄上点按并按住可使单元格高亮显示,因为它通常会用于拖动。一旦我开始拖动,突出显示就消失了,单元格保持放置 - 从字面上看它永远不会移动。
通过日志记录,我可以观察到moveRowAtIndexPath:toIndexPath:在单元被删除时被调用。
我限制了可用的拖动目标。日志显示targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:在模拟器中运行时被调用,但在手机上运行时不被调用。此外,问题发生在这个方法实施之前(原始设计不需要它;新的设计,但也希望这种方法可以解决这个问题)。它似乎是唯一的代表方法没有触发,因为所有其他实现的方法似乎工作得很好。代码来自我的另一个项目,在手机上运行良好。即使这种方法正常工作,您仍然可以拖动单元格,只能将其放置在允许的位置。我甚至无法开始移动细胞。
我已经在IB中搜索相关选项,以及tableview,delegates和cells的文档。如果我想想要这种行为,我不会发现任何事情,甚至暗示有用,所以我不知道要启用或禁用什么。什么可能是一个单一的委托方法会在模拟器中触发,而不是在手机上的原因?
OS 3.0/3.0.1,原始iPhone,发生在多个设备上。
我刚刚发生了同样的事情 - 我花了很多年试图让这张表加载数据,然后当我终于做到了,我无法移动任何单元格了。我搜索了一下,发现这个线程 - 原来问题是由于我从一个视图移动到所有视图的一些加速度计的东西 - 禁用它,而在打开tableview时解决了问题。
我想知道问题的实际原因,但我很高兴找到解决办法。
谢谢你!
尝试发布样本代码并展开您的问题 – Daniel 2009-08-05 14:19:46
此问题尚不清楚。它似乎没有编程相关。也许你应该尝试superuser.com? – 2009-08-05 14:20:04
这是iPhone,他正在讨论在UITableView的编辑模式下对单元格进行重新排序。 – Amagrammer 2009-08-05 14:51:19