selectedBackgroundView

selectedBackgroundView

我设置:

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];
//...

10-08 18:44