如果我选择一行并旋转设备,我会有一个完全不同的方向布局。 我想跟踪最后选择的项目,我可以在新布局中旋转后重新执行。
那么,我是否应该理想地存储所选的indexPath,选定的行号或从dataSource在每个单元格中表示的所选模型对象?
我尝试存储选定的单元格,但重新使用时会产生问题。
答案 0 :(得分:2)
如果对新布局使用相同的数据,我认为保存选定的indexPath就足够了。但是如果你使用不同的数据,意味着它可以处于不同的索引(如果你在旋转后做一些处理),那么你也需要保存它。
修改强>
在为新方向创建新布局之前,找到所选单元格的选定索引路径并保存。然后在cellForRowAtIndexPath:
中,检查它是否存在于该indexPath并使其状态为选中状态。希望它可以帮到你。
答案 1 :(得分:0)
首先初始化NSMutableArray *selectedItems
。 (viewDidLoad
中的alloc-init)
在didSelectRowAtIndexPath
委托方法中,选中
if ([selectedItems indexOfObject:indexPath] == NSNotFound) // if not available
{
[selectedItems addObject: indextPath]
}
// if you are having deselect option as well then you can have else statement as well
else
{
[selectedItems removeObject: indexPath];
}
现在在cellForRowAtIndexPath
进行单元格初始化时,
首先绘制一个包含所有属性的正常单元格,最后检查:
if ([selectedItems indexOfObject:indexPath] != NSNotFound) // if current indexpath is selected
{
// then display your selected cell [checkbox or different bg color as per your requirements]
}
希望这会对你有所帮助。