【问题标题】:iOS change color of tableviewcell and its subview at the same timeiOS同时改变tableviewcell及其子视图的颜色
【发布时间】:2015-03-15 11:54:01
【问题描述】:

我有一个tableviewcell,在taleviewcell 中有另一个UIView 类型的元素(让我们调用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类型的子视图改变颜色。

以前有人遇到过这个问题吗?

【问题讨论】:

  • 你不能把背景颜色设置为[UIColor clearColor]而不用担心这个吗?
  • 感谢您的回复,我实施了您的解决方案,仍然是同样的问题。
  • 如果你把taskCircularProgressViewOt的背景色设置为清除,就不可能出现同样的问题。
  • 是的,你是对的,我在故事板中初始化了 taskCircularProgressViewOt 的颜色,只改变了 taskviewcell 的颜色,它起作用了。谢谢
  • 发布错误行为的截图。

标签: ios objective-c uitableview ios7 uiview


【解决方案1】:

正如 MacDonald 建议的那样,我在情节提要中初始化了 taskCircularProgressViewOt 的颜色,并使用 [UIColor clearColor] 仅更改了 taskviewcell 的颜色,它起作用了。

【讨论】:

    猜你喜欢
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 2018-06-11
    相关资源
    最近更新 更多