当它处于编辑模式时,我有一个UITableView,选中的单元格会突出显示其背景,但我在编辑模式下分配给单元格上标签的突出显示颜色,尽管它在选择时工作正常普通模式。
UILabel *desc = [[[UILabel alloc]initWithFrame:CGRectMake(self.textXStart, descYStart, self.descWidth, descHeight)]autorelease];
desc.lineBreakMode = self.descLineBreakMode;
desc.font = font;
desc.textAlignment = NSTextAlignmentLeft;
desc.numberOfLines = self.descLinesNumber;
desc.text = descText;
desc.highlightedTextColor = [UIColor whiteColor];
然后我将其添加到单元格内容视图
在普通情况下,突出显示的颜色会显示,但是当我点击编辑按钮并选择一个单元格时,标签文字没有突出显示的颜色。
您认为这个问题的原因是什么。
答案 0 :(得分:2)
如果您已将allowsMultipleSelectionDuringEditing
设置为YES
,则UITableView
“在编辑模式进入编辑模式时不会查询编辑样式”,如类参考中所述:
答案 1 :(得分:1)
我遇到了同样的问题。对我有用的是覆盖didSelectRowAtIndexPath和didDeselectRowAtIndexPath amd手动设置我的自定义单元格中的标签颜色。
此外,您还需要确保在进入和退出编辑模式时调用重新加载数据。
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[[self tableView] reloadData];
}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
DocumentCell *cell = (DocumentCell *) [tableView cellForRowAtIndexPath:indexPath];
if([cell isEditing]) {
cell.titleLabel.textColor = [UIColor blackColor];
cell.dateLabel.textColor = [UIColor blackColor];
cell.tagsLabel.textColor = [UIColor blackColor];
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DocumentCell *cell = (DocumentCell *) [tableView cellForRowAtIndexPath:indexPath];
if([cell isEditing]) {
cell.titleLabel.textColor = [UIColor whiteColor];
cell.dateLabel.textColor = [UIColor whiteColor];
cell.tagsLabel.textColor = [UIColor whiteColor];
}
}