UITableViewCellEditingStyleDelete自动取消选择tableview中的所有可见单元格

问题描述:

我使用带实施的commitEditingStyle的分组UITableView从表中删除单个行。 (在我的UIViewController中,没有UITableViewController)。 另外我用一个自定义单元格与选中的图像。要改变形象,我只是用这个:UITableViewCellEditingStyleDelete自动取消选择tableview中的所有可见单元格

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
    if (selected) { 
     self.img_checked.image = [UIImage imageNamed:@"checked.png"]; 

    else { 
     self.img_checked.image = [UIImage imageNamed:@"unchecked.png"]; 
    } 
} 

我的问题是,当轻扫行作为期望的“删除”出现,但它会自动取消所有可见的细胞在tableview中

我怎么能防止tableview这样做?

+0

为什么你想保持细胞选择? – Lion

+0

在我的tableview中有5个选中的可见行。如果我滑动删除,setSelected会被所有可见的行自动调用。当然,我想让其他行被选中,我什至不触及它们,我删除的一个我不在乎,它的删除;)但如果我只是swie并取消删除,所有行保持未选中 –

您应该保存所选状态的索引或索引路径,然后在cellForRow或willDisplayCell:delegates中检查它。你可以通过字典或数组。第二种方法是将其保存在单元格中设置的对象内部的单独变量中(如果这样做的话)。

+0

为什么我应该救他们吗?如果选择一个单元格,则状态已经保存在每个单元格中。但我问自己,为什么 - (void)setSelected:(BOOL)选择动画:(BOOL)动画方法beeing叫?我不选择任何可见的行。在我刷一行的时候,所有可见的行都被取消选中,因为iOS会自动调用该方法。因此,为了具备所有功能的完整可用性,用于选择单元格的标准Apple回调方法是无用的? –

+0

这是一个界面选择,但您需要告诉系统自己应该选择哪个单元格,请查看以下链接:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/ManageSelections/ ManageSelections.html –