Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UITableView重新排序的单元格在滚动后不保留其状态_Objective C_Uitableview - Fatal编程技术网

Objective c UITableView重新排序的单元格在滚动后不保留其状态

Objective c UITableView重新排序的单元格在滚动后不保留其状态,objective-c,uitableview,Objective C,Uitableview,我正在使用动态行数和节数的UITableView。我已将所有数据的行和节值存储在NSMutableDictionary中,如下所示。 { 水果=[苹果、橘子、菠萝], 汽车=[法拉利、保时捷、奥迪] } 这里水果和汽车是我的部分标题,而它的值是我对应的行。好的我遵循Raywanderlich的教程,通过长按该行对分区内的UITableView单元格重新排序。这很好用。我的问题是,在对单元格重新排序后,当我滚动到表格的底部或顶部时,重新排序的单元格会返回到其初始位置。但是,即使在滚动或重新加载之后

我正在使用动态行数和节数的UITableView。我已将所有数据的行和节值存储在NSMutableDictionary中,如下所示。 { 水果=[苹果、橘子、菠萝], 汽车=[法拉利、保时捷、奥迪] }

这里水果和汽车是我的部分标题,而它的值是我对应的行。好的我遵循Raywanderlich的教程,通过长按该行对分区内的UITableView单元格重新排序。这很好用。我的问题是,在对单元格重新排序后,当我滚动到表格的底部或顶部时,重新排序的单元格会返回到其初始位置。但是,即使在滚动或重新加载之后,我也希望它们保持在重新排序的位置


我很欣赏你的想法

@HotLicks:谢谢。你能详细说明一下解决方案吗?当你向下滚动时,从顶部滚动的单元格将被移除并放置在可重复使用的单元格池中。当您向上滚动时,当cellForRow请求时,单元格将按随机顺序从该池中提取。。。。如果重新排列可见单元格而不是数据源数组,则单元格顺序将错误。如果你不适当地清洁回收的电池,它们将含有错误的物质。@HotLicks。什么是合适的清理?当你重新排列单元格时,你必须重新排列底层模型数组的数组。如果您这样做,那么当您四处滚动并且它必须从UITableViewDataSource查询时,它将反映重新排序的模型。