我正在尝试更改表格视图单元格中的标签状态
我想在我推动一个不同的视图控制器时选择一个单元格,然后用我的tableview移回视图控制器
当我选择另一行时,我想删除先前所选行的标签的高亮显示(取消选择以前选择的行)并突出显示当前行的标签。
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated
是否应该为该单元格突出显示“否”调用- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
?
注意:我不是UITableViewController。
答案 0 :(得分:0)
保持选择单元格:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.selected = YES;
//Other code
}
确保类单元格在界面构建器中没有selected = NONE。
取消选择最后一行:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *currentSelectedIndexPath = [tableView indexPathForSelectedRow];
if (currentSelectedIndexPath)
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.selected = NO;
}
return indexPath;
}
答案 1 :(得分:0)
首先,你应该正确设置TableviewCell [cell setSelectionStyle:UITableViewCellSelectionStyleGray];方法:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
除此之外,您可以通过
设置所选单元格的自定义背景UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor colorWithWhite:0.97 alpha:1.0];
bgColorView.layer.masksToBounds = YES;
[cell setSelectedBackgroundView:bgColorView];
对于您突出显示的选定单元格问题,您可以使用简单标记,如
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSIndexPath *ip= [NSIndexPath indexPathForRow:flagForLastSelectedRow inSection:0];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
flagForLastSelectedRow=indexPath.row;
}