UITableView单元格选择颜色?

我创建了一个自定义的UITableViewCell 。 表格视图显示数据正常。 我卡住的是当用户触摸tableview的单元格,然后我想显示单元格的背景颜色,而不是默认的[蓝色]值来突出显示单元格的选择。 我使用这段代码,但没有任何反应:

cell.selectedBackgroundView.backgroundColor=[UIColor blackColor];

我认为你是在正确的轨道上,但根据selectedBackgroundView的类定义:

对于普通样式表(UITableViewStylePlain)中的单元格和对于部分组表格UITableViewStyleGrouped非零的默认值为零。

因此,如果您使用的是简单样式的表格,那么您需要alloc-init一个具有所需背景色的新UIView ,然后将其分配给selectedBackgroundView

或者,您可以使用:

cell.selectionStyle = UITableViewCellSelectionStyleGray;

如果所有你想要的是单元格被选中时的灰色背景。 希望这可以帮助。


不需要定制单元格。 如果您只想更改单元格的选定颜色,则可以这样做:

Objective-C的:

UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor redColor];
[cell setSelectedBackgroundView:bgColorView];

迅速:

let bgColorView = UIView()
bgColorView.backgroundColor = UIColor.redColor()
cell.selectedBackgroundView = bgColorView

Swift 3:

let bgColorView = UIView()
bgColorView.backgroundColor = UIColor.red
cell.selectedBackgroundView = bgColorView

编辑:更新为ARC

编辑:添加Swift 3


如果你有一个每个部分只有一个单元格的分组表,只需在代码中添加这一行: bgColorView.layer.cornerRadius = 10;

UIView *bgColorView = [[UIView alloc] init];
[bgColorView setBackgroundColor:[UIColor redColor]];
bgColorView.layer.cornerRadius = 10;
[cell setSelectedBackgroundView:bgColorView];
[bgColorView release]; 

不要忘记导入QuartzCore。

链接地址: http://www.djcxy.com/p/49397.html

上一篇: UITableView Cell selected Color?

下一篇: Eliminate extra separators below UITableView