我可以添加一个'行分隔符'手动上面我的uitableviewcells(开箱即用的iOS并不是为此而削减它)。所以我创建了一个名为_separatorLines的UIViews数组,我将每个索引中的一个UIView添加到uitableviewcells'我的' cellForRowAtIndexPath'中的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发生变化。
答案 0 :(得分:0)
对我来说,我认为问题就在于此 NSIndexPath * I = [NSIndexPath indexPathForRow:i inSection:1];
UITableView从第0节开始(就像行从'0'开始)。
还因为我的UITableView是委托,我停止使用
[self tableView:tableView cellForRowAtIndexPath:I];
并将其替换为
[self cellForRowAtIndexPath:I];
不确定这与它有什么关系