我可以禁用单个单元格的UITableView选项吗?

时间:2013-03-21 08:01:27

标签: ios

当您点击UITableView中的某一行时,该行会突出显示并被选中。是否可以禁用此功能,因此点击一行什么都不做?

10 个答案:

答案 0 :(得分:18)

cell.selectionStyle = UITableViewCellSelectionStyleNone;

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

此外,请确保您未在​​-tableView:didSelectRowAtIndexPath:中实施table view delegate,或明确排除您希望不执行任何操作的单元格。

答案 1 :(得分:4)

实现tableView:willSelectRowAtIndexPath:的{​​{1}}委托方法并返回UITableView。从此方法返回nil告诉表视图不选择行,因此nil方法不会被调用。但这样做并不能阻止突出显示行。要禁用对行集单元格选择样式的突出显示效果为tableView:didSelectRowAtIndexPath:,如上面的答案中所述。

答案 2 :(得分:2)

刚设置:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

答案 3 :(得分:2)

cell.selectionStyle = UITableViewCellSelectionStyleNone;

答案 4 :(得分:1)

如果你想要停止突出显示使用代码说:你想要的值为19

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{
if(indexpath.row == '19')
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
else
cell.selectionStyle = UITableViewCellSelectionStyleGray;

}

但是,如果你想控制细胞的选择

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

if(indexpath.row == '19')
[tableView deselectRowAtIndexPath:indexPath animated:NO];

}

答案 5 :(得分:1)

对于Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none

答案 6 :(得分:0)

接受的答案对我不起作用。这个问题让我疯狂了一段时间,因为当下一个视图加载时,它看起来像任何选择上的“小故障”..

我的解决方案:我必须转到实际TableViewCell(我构建的自定义单元格)的.xib文件中选择单元格并选择CellView。 (确保选择单元格,而不是其中的子视图。它将变为蓝色,如图所示)。在左侧点击“选择” - > “没有”。这应该与使用代码完全相同,但由于某种原因它只是不起作用...... enter image description here

答案 7 :(得分:0)

这是针对您有自定义单元格的情况,但是我在寻找答案时发现了这个问题,因此我想将其保留在这里,以防对他人有所帮助


转到您的自定义单元格,然后在selectionStyle方法中将.none设置为awakeFromNib

override func awakeFromNib() {
    super.awakeFromNib()

    // disable selection
    selectionStyle = .none;
}

如果您在多个UITableView中使用此自定义单元格,则只需在自定义单元格中设置一次,而不必在您使用的每个UITableView上设置一次:)

答案 8 :(得分:0)

对于Swift 4

cell.selectionStyle = UITableViewCell.SelectionStyle.none

答案 9 :(得分:0)

您可以简单地针对 OBJ C 执行此操作:

TADOQuery