iphone - 进入/退出编辑模式时重绘 UITableViewCell

标签 iphone ios cocoa-touch uitableview

我有一个 TableView ,其中根据表是否正在编辑而构建不同的单元格。具体来说,选择样式在编辑模式下为无,在非编辑模式下为蓝色。

当我从一个转换到另一个时,我注意到一些单元格没有更新。快速的日志记录告诉我,即使单元格的外观发生了很大变化(例如,正确添加/删除了附件 View ), TableView 也不会刷新选择样式(也不会刷新文本)。

这是怎么回事?调用 setEditing 时是否仅更新单元格的某些属性?大概只有那些具有允许分配单独 View 样式(例如 EditingAccessoryType)的特定方法的那些?我想我会受益于 EditingSelectionStyle。

我该如何解决?通过自定义 setEditing 来更改每个单元格的 selectionStyle?我什至不确定如何遍历 TableView 来执行此操作。由于我正在使用的一些动画,reloadData 不是一个选项。

最佳答案

我发现自定义 setEditing: 以遍历可见单元格并为每个单元格设置 selectionStyle 可以正常工作。

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{   
    [super setEditing:editing animated:animated];

    for (UITableViewCell *cell in [self.tableView visibleCells]) {
            NSIndexPath *path = [self.tableView indexPathForCell:cell];
            cell.selectionStyle = (self.editing && (path.row > 1 || path.section == 0)) ? UITableViewCellSelectionStyleNone : UITableViewCellSelectionStyleBlue;
    }
}

关于iphone - 进入/退出编辑模式时重绘 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393026/

相关文章:

iphone - 地理位置 : Protocol on iPhone Safari

ios - Restkit 映射字符串数组

ios - 在Swift中尝试连接WebSocket时总是出现错误

ios - 如何检查另一个数组中不存在的数组值

iphone - 有谁知道 iphone 地址簿框架的包装器?

iphone - 全屏 UIView 不会为其外观设置动画

iphone - 我可以在没有特定 NSManagedObjectContext 的情况下创建 NSManagedObject 的实例吗?

ios - 如何在 IB 中使用带有 XIB 的 UIContainerView?

iphone - 在 iOS 中使用图形 API 将 friend 标记到墙上的帖子

android - BTLE(低功耗蓝牙)开发套件 - 必须具有接近配置文件