我有一个带有项目列表的表格视图。当我点击其中一个项目时,我希望突出显示背景。我有这个代码工作,但颜色在发布时更改,而不是在点击本身。如何在用户点击单元格时突出显示,而不是在他/她释放单元格时?
这是我的代码:
-(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;
}
答案 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];
}