我有一个tableviewcell
,UIView
中有另一个taleviewcell
类型的元素(让我们调用A),并希望执行以下操作:
每当我点击tableviewcell
时,其颜色将从红色变为灰色,因为A位于tableviewcell
,其颜色也应该更新。无论何时再次点击,它们的颜色必须从灰色反转回红色。
首先,我在didSelectRowAtIndexPath
方法上捕获事件。然后我将rowIndex
保留在cellForRowAtIndexPath
方法中使用的地方并致电:
self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
在cellForRowAtIndexPath
方法中,我检查,如果indexPath.row == rowIndex
,那么它就是我点击改变颜色的那个,我确实改变了它的颜色:
cell.taskCircularProgressViewOt.backgroundColor =[UIColor colorWithRed:0.0/255.0 green:134.0/255.0 blue:241.0/255.0 alpha:1];
cell.contentView.backgroundColor = [UIColor colorWithRed:0.0/255.0 green:134.0/255.0 blue:241.0/255.0 alpha:1];
问题在于,UIView element (A)
的更改后,tableviewcell
的颜色会略有变化。也就是说,tableviewcell的颜色首先发生变化,在几毫秒之后,它的UIView类型的子视图会改变它的颜色。
以前有人遇到过这个问题吗?
答案 0 :(得分:0)
正如MacDonald建议的那样,我在故事板中初始化了taskCircularProgressViewOt的颜色,并使用[UIColor clearColor]
更改了taskviewcell的颜色,这很有效。