我可以手动在我的 uitableviewcells 上方添加一个“行分隔符”(开箱即用的 iOS 不会为此剪掉它)。所以我创建了一组 UIViews,称为 _separatorLines,我将每个索引中的一个 UIView 添加到我的“cellForRowAtIndexPath”中的 uitableviewcells'contentView
UIView *v = [_separatorLines objectAtIndex:indexPath.row];
[cell.contentView addSubview:v];
但是,当我选择一个单元格时,我希望所有其他单元格的行分隔符变为红色。在 'didSelectRowAtIndexPath' 我有:
{
for(unsigned int i = 0; i < _rowsInSection-1; i ++)
{
//make all other rows have a red content view
if(i != indexPath.row)
{
NSIndexPath *I = [NSIndexPath indexPathForRow:i inSection:1];
UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:I];
UIView *separatingLineView = [_separatorLines objectAtIndex:I.row+1];
separatingLineView.backgroundColor = [UIColor redColor];
[cell.contentView bringSubviewToFront:separatingLineView];
[separatingLineView setNeedsDisplay];
[cell setNeedsDisplay];
[cell.contentView setNeedsDisplay];
}
}
[self setNeedsDisplay];
相反,我没有看到 uitableviewcells 的 contentView 发生变化。