2011-04-17 50 views
10

我有一个UITableviewCell。当用户单击单元格时,我保存索引路径,然后调用cellforrowAtIndexpath方法获取单元格,然后在该单元格上调用SetHighlighted:TRUE。如何使UITableViewCell突出显示状态持续

这工作正常,但问题是当我上下滚动tableview,所选单元格重新出现时,没有突出显示。如何使突出显示的蓝色持续显示,以便用户在向上或向下滚动表格后可以直观地看到他们的选择?

感谢

回答

19

保存所选单元格

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedIndexPath = indexPath; 
} 

的indexpath和tableVIew:cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // configure cell 
    if ([indexPath isEqual:self.selectedIndexPath]) { 
     [cell setHighlighted:YES]; 
    } 
    else { 
     [cell setHighlighted:NO]; 
    } 
    return cell; 

} 

比较然而,要记住,苹果不鼓励使用的电池高亮度状态来指示选定的单元格您应该可能使用cell.accessoryType = UITableViewCellAccessoryCheckmark;

+0

我看到谢谢我现在要尝试它。 – banditKing 2011-04-17 17:41:06

+0

感谢您的回答。但我已经拥有一个accessoryView作为detaildisclosureindicator。这就是为什么我想突出这个单元格。这是Apple的问题吗?你的建议是什么?谢谢 – banditKing 2011-04-17 17:58:25

+0

你永远无法知道它是否适合他们。有时候他们对HIG非常严格,有时候并不那么重要。我只会尝试像这样提交它。最糟糕的情况是他们拒绝它,然后你改变它。 – 2011-04-17 19:12:04

相关问题