2

当我们选择 UITableViewCell 比- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath调用。

但是如果我们持有 UITebleViewCell 会调用哪个方法。伙计们,我的问题是我创建了一个包含大单元格的表格视图,并且在该单元格中我正在设置各种视图视图的背景颜色。

当我选择单元格时,我的单元格的背景颜色将消失。我已经通过didSelectRowAtIndexPath像这样的方法再次设置视图背景颜色来解决这个问题。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];

    UIView *vLineview=[selectedCell viewWithTag:1];
    vLineview.backgroundColor = [UIColor colorWithRed:(89/255.0) green:(89/255.0) blue:(89/255.0) alpha:1];
}

这完成了技巧,我的视图背景颜色将显示,但是当我持有 UITableViewCell 时,它会再次消失。

我该如何解决这个问题?我是否必须和手势识别器来检测长触摸并在其中实现我的视图背景方法?或者有任何其他可用的方法。

4

4 回答 4

1

尝试在 cellForRowAtIndexPath 中设置单元格选择样式 none like this

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
于 2013-06-19T12:29:17.787 回答
0

-(void)beginUpdates
如果您希望后续的插入、删除和选择操作(例如 cellForRowAtIndexPath: 和 indexPathsForVisibleRows)同时进行动画处理,请参阅名为Call this method 的方法。有关更多详细信息,请访问以下链接
UITableView Class Refrence中的苹果文档

也试试[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

于 2013-06-19T12:31:47.453 回答
0

You can subclass UITableViewCell and override this method:

- (void) setSelected: (BOOL) selected
            animated: (BOOL) animated
{
    [super setSelected: selected
              animated: animated];

    // Configure the view for the selected state
}
于 2013-06-19T12:26:20.833 回答
0

这是您点击该行后 UITableViewCell 保持选中状态的问题吗?

如果不需要行选择,请确保deselectRowAtIndexPath:animated在方法结束时调用tableView:didSelectRowAtIndexPath

[tableView deselectRowAtIndexPath:indexPath animated:YES];

于 2013-06-19T12:29:13.930 回答