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