cellForRowAtIndexPath和prepareForSegue返回不同​​的标签颜色

时间:2015-06-08 22:37:40

标签: ios uitableview swift uicolor

我有一个自定义表格视图单元格。在单元格内部是我从对象库添加的标签,我给它一个viewWithTag值为1.表格视图单元格中的标签具有黄色背景颜色。这是代码:

cellForRowAtIndexPath我有

let label = cell.viewWithTag(1) as! UILabel
label.backgroundColor = yellowColor // yellowColor is a regular UIColor I defined elsewhere
println(label.backgroundColor) // returns Optional(UIDeviceRGBColorSpace 0.980392 0.776471 0 1)

现在,prepareForSegue我有

let cell = tableView.cellForRowAtIndexPath(tableView.indexPathForSelectedRow()!)
let labelBackgroundColor = cell?.viewWithTag(1) as! UILabel).backgroundColor
println(labelBackgroundColor) // returns Optional(UIDeviceWhiteColorSpace 0 0)

因此,根据我的理解,我从同一标签的backgroundColor属性中获取Optional(UIDeviceRGBColorSpace 0.980392 0.776471 0 1)Optional(UIDeviceWhiteColorSpace 0 0)。它不应该是相同的RGB值吗?我在这里错过了什么?如果这是访问标签的backgroundColor属性的错误方法,我将如何正确访问它?

1 个答案:

答案 0 :(得分:0)

这似乎是由于选择时发生的颜色变化。如果您为单元格的选择样式设置为“无”,则会在prepareForSegue中报告正确的颜色。