我有一个UITableviewCell。当用户单击单元格时,我保存索引路径,然后调用cellforrowAtIndexpath方法获取单元格,然后在该单元格上调用SetHighlighted:TRUE。
这样可以正常工作,但问题是当我在桌面视图中向上和向下滚动时,重新出现时所选的单元格不会突出显示。如何使突出显示的蓝色颜色保持不变,这样即使向上或向下滚动表格,用户也可以直观地看到他们的选择?
由于
答案 0 :(得分:19)
保存所选单元格的索引路径
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.selectedIndexPath = 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;