2011-07-23 69 views
2

当我选择一个自定义的单元格时,它会隐藏单元格中的所有内容,并只显示选择的颜色。UITableViewCell Selectioncolor隐藏所有内容

enter image description here

如何选择时,我只是变暗的背景一点?

+0

尝试发布一些代码... – Aravindhan

+0

该单元在IB中完成。我是UITableViewCell的子类。我在这门课只有getter和setter。 – Chris

回答

2

除了覆盖setHighlighted:之外,您还可以使用表格视图单元格的视图组合来获得优势。

当iOS应用突出显示时,它实际上是使用每个表格视图单元的selectedBackgroundView属性。所以,你可以制作一个自定义的UIView(不过它的样式,例如给它所需的背景颜色),并将其设置为表视图单元格的selectedBackgroundView属性(cell.selectedBackgroundView)。在自定义单元格的其他细节时,在cellForRowAtIndexPath:中执行此操作。

这意味着你可以自己控制选择; iOS默认渐变将不会被应用。


也可以通过Interface Builder更改selectedBackgroundView。在与您的自定义单元格相同的笔尖中,在笔尖中创建另一个视图 - 而不是自定义表格视图单元格的子视图 - 并将其与自定义表格视图单元格的“selectedBackgroundView”出口连接起来。

+0

我发现了这个问题。 CustomCell的视图链接到backgroundView。由于我删除了该链接,它与您建议的selectedBackgroundView完美配合。唯一的问题是我不能用cell.backgroundColor设置单元格的背景 – Chris

+0

@Chris:“linked to”? –

+0

在IB中链接,就像您将ibout链接到标签 – Chris

2

如果这是一个自定义单元格,执行

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 

并在其调整的背景色。

2

您可以在选择单元格时添加突出显示的文本颜色。

cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"part2.png"]]; 


cell.textLabel.highlightedTextColor = [UIColor blackColor]; 

根据突出显示的单元格选择颜色设置选定的文本颜色。