我正在使用Pixate来设置表格单元格。我正在将单元格出列并更新textLabel类,如下所示:
static NSString *CellIdentifier = @"Cell";
UITableViewCell * cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
cell.textLabel.text = @"Hello";
// The dictionary is passed in.
cell.textLabel.styleClass = [dictionary objectForKey:STYLE_CLASS];
应用了类,但如果单元格已出列,并且类发生更改,则它不会始终生效。如何让风格始终设置?
更新
首先我对症状的描述是错误的。当我第一次加载表。 没有设置单元格样式。当我开始滚动时,正确应用了样式。当我滚动更多时,一些单元格,而不是所有单元格的样式都不正确。设置单元格值也应该是:
// Not sure why I got rid of this and replaced with @"Hello"
cell.textLabel.text = [dictionary objectForKey:NAME];
cell.textLabel.styleClass = [dictionary objectForKey:STYLE_CLASS];
最初我使用的是Pixate Freestyle 2.1.1。在pixatepaul的提示我更新到2.1.3。 2.1.3表现出同样的问题。但是,根据2.1.1,我可以发誓该单元格应用了错误的样式。在2.1.3下,看起来错误的细胞没有任何风格。
此外,updateStyle建议无效。
[cell updateStyle]; // Doesn't work
[cell.textLabel updateStyle]; // Doesn't work either
我在设置textLabel文本和样式时进行了一些日志记录,我注意到只有在出列的单元格设置为已有的相同值时才会出现问题。所以我尝试了下面的hack,工作。
// This can't be right.
if(![[dictionary objectForKey:NAME] isEqualToString:cell.textLabel.text])
{
cell.textLabel.text = [dictionary objectForKey:NAME];
cell.textLabel.styleClass = [dictionary objectForKey:STYLE_CLASS];
}
更新2:
我看了一下其他的table-view-cell样式,看看是否有其他的设置颜色。我看到我正在设置颜色
table-view-cell text-label {
color: #53555a;
font-family: "Verdana";
font-size: 14pt;
font-weight: light;
}
删除颜色让我摆脱if块,现在单元格设置正确!
table-view-cell text-label {
font-family: "Verdana";
font-size: 14pt;
font-weight: light;
}
//if(![[dictionary objectForKey:NAME] isEqualToString:cell.textLabel.text])
//{
cell.textLabel.text = [dictionary objectForKey:NAME];
cell.textLabel.styleClass = [dictionary objectForKey:STYLE_CLASS];
//}
答案 0 :(得分:0)
我很好奇您使用Freestyle的哪个版本?你不应该,但你可以打电话
[cell updateStyles]
。
答案 1 :(得分:0)
所以我想在单元格中为文本标签添加一个类来更改文本颜色。我只是添加了一个类,没有css选择器。
风格没有生效。旧CSS:
.benchmark {
color: deeppink;
}
table-view-cell {
background-color: #fff;
}
table-view-cell text-label {
font-family: "Verdana";
font-size: 14pt;
font-weight: light;
color: #53555a;
}
也许我的特异性理解不好。解决方案:
.benchmark {
color: deeppink;
}
table-view-cell {
background-color: #fff;
}
table-view-cell text-label {
font-family: "Verdana";
font-size: 14pt;
font-weight: light;
}
现在细胞染色正确。