单击时突出显示表视图单元,而不是在发布时

时间:2012-08-09 12:19:43

标签: iphone ios uitableview

我有一个带有项目列表的表格视图。当我点击其中一个项目时,我希望突出显示背景。我有这个代码工作,但颜色在发布时更改,而不是在点击本身。如何在用户点击单元格时突出显示,而不是在他/她释放单元格时?

这是我的代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    // Navigation logic may go here. Create and push another view controller.

    Help_Cell *cell =(Help_Cell*) [tableView cellForRowAtIndexPath:indexPath];

    cell.selectionStyle=UITableViewCellSelectionStyleNone;

    UIView *v=[[UIView alloc] initWithFrame:cell.frame];

    v.backgroundColor=[self colorForHex:[appDel.appColorSettings objectForKey:@"cellColor2"]];

    cell.backgroundView=v;

    cell.title.textColor=[self colorForHex:[appDel.appColorSettings objectForKey:@"cellColor1"]];
}

我希望它像按钮一样发生。除了onClick之外,UITableView或UITableViewCell是否有didSelectRowAtIndexPath方法?

修改

以下是cellForRowAtIndexPath

的代码
-(void)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    Help_Cell *cell =(Help_Cell*) [tableView cellForRowAtIndexPath:indexPath];

    cell.selectionStyle=UITableViewCellSelectionStyleNone;

    UIView *v=[[UIView alloc] initWithFrame:cell.frame];

    v.backgroundColor=[self colorForHex:[appDel.appColorSettings objectForKey:@"cellColor2"]];

    cell.selectedBackgroundView=v;

}

2 个答案:

答案 0 :(得分:2)

在创建单元格时,在cellForRowAtIndexPath中,写下代码:

UIView *v=[[UIView alloc] initWithFrame:cell.frame];
v.backgroundColor = [self colorForHex:[appDel.appColorSettings objectForKey:@"cellColor2"]];
    cell.selectedBackgroundView = v;

无需在didSelectRow方法中编写任何内容。

答案 1 :(得分:0)

您可以将此视为选项

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

[tableView selectRowAtIndexPath:indexPath.row animated:YES scrollPosition:UITableViewScrollPositionTop];

}