我设置:
cell.selectionStyle = UITableViewCellSelectionStyleGray;
并使用代码突出显示一行:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection: 0];
[self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone
即使我设置为灰色,突出显示颜色也始终是蓝色。如果我设置:
cell.selectionStyle = UITableViewCellSelectionStyleNone;
它工作正常,没有突出显示。但是只是不能使用:
cell.selectionStyle = UITableViewCellSelectionStyleGray;
它只是显示蓝色而不是灰色。任何想法?谢谢。
最佳答案
实现如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) indexPath {
[cell setSelectionStyle:UITableViewCellSelectionStyleGray];
}
或
将
selectedBackgroundView
的颜色设置为您想要的自定义tableview单元格(它是UITableViewCell的子类):UIView * selectedBackgroundView = [[UIView alloc] initWithFrame:self.frame];
[selectedBackgroundView setBackgroundColor:[UIColor redColor]]; // set color here
[self setSelectedBackgroundView:selectedBackgroundView];
或者您可以使用
-tableView:cellForRowAtIndexPath:
方法对其进行配置://...
[cell setSelectedBackgroundView:selectedBackgroundView];
//...