为什么UITableViewCell在编辑模式下突出显示颜色未显示

时间:2013-04-17 17:29:52

标签: ios objective-c uitableview

当它处于编辑模式时,我有一个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];

然后我将其添加到单元格内容视图

在普通情况下,突出显示的颜色会显示,但是当我点击编辑按钮并选择一个单元格时,标签文字没有突出显示的颜色。

您认为这个问题的原因是什么。

2 个答案:

答案 0 :(得分:2)

如果您已将allowsMultipleSelectionDuringEditing设置为YES,则UITableView“在编辑模式进入编辑模式时不会查询编辑样式”,如类参考中所述:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instp/UITableView/allowsMultipleSelectionDuringEditing

答案 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];
    }
}