我有一个UITableViewController的自定义子类,它使用一组UITableViewCells的自定义子类。
没有什么太花哨的。表格单元格在其内容视图中有两个子视图。
现在我让用户选择一个单元格,导航控制器会推送到颜色选择屏幕。用户选择颜色。大。表视图是此视图的委托。它接收颜色,更新选定的单元格,以便子视图现在使用此背景颜色,然后从导航控制器弹出当前视图。
一切正常! tableViewController将滑回视图,单元格中的指示器现在显示用户选择的背景颜色。但是在显示表格视图后,单元格选定的单元格将自动应用蓝色突出显示。这是TableViewController中的一些内置魔法。这很好,但它正在重置我的手机指示器状态。
问题是,我无法找到将细胞正确更新到这种新颜色的位置。颜色在tableViewController中存储为ivar。所以我想在尝试这个:
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
但是唉,这种方法并没有因为魔术UIKit正在做的事情来短暂地突出细胞。我需要正确更新我的细胞的任何想法吗?
答案 0 :(得分:0)
我不确定你是如何设置背景颜色的,但你应该使用backgroundView
子类的UITableViewCell
属性。
someCell.backgroundView.backgroundColor = someColor;
(来自UITableViewController
内部,或者从您的选择器中获取颜色信息的任何地方)。
当单元格从选定位置变为取消选择时,执行此操作不应重置背景颜色。