我怎么能禁止选择一个tableviewcell

时间:2012-04-05 07:37:39

标签: iphone xcode uitableview

像往常一样,当触摸一个tableviewcell时,它将被选中。但是现在我需要在我的tableview中选择一个单元格从不被选中。我是否可以禁止选择tableviewcell?

修改didSelectRowForIndexPath:方法后。它现在有效。谢谢ALl :) 一旦选择了单元格(需要被禁止),我只需使用selectRowAtIndexPath方法选择要再次选择的前一个选定单元格。

4 个答案:

答案 0 :(得分:2)

正确的方法是使用tableView:willSelectRowAtIndexPath: 与所有其他答案不同,这也适用于segues; - )

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath should not be selected) {
        // if another indexPath should be selected instead return this indexPath
        return nil;
    }
    return indexPath;
}

答案 1 :(得分:1)

您可以为该单元格禁用用户交互,或为该单元格设置选择样式无。希望有所帮助!

答案 2 :(得分:1)

在您的-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法中,将以下行添加到您想要无法选择的单元格中:

cell.selectionStyle = UITableViewCellSelectionStyleNone;

希望有所帮助

修改

在您的-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法中,在开头添加以下内容:

if (indexPath == indexPathOfTheCellThatShouldntBeSelected) return;

答案 3 :(得分:1)

didSelectRowForIndexPath:方法中,您可以检查单元格是否符合您的质量标准,并相应地显示UIAlertView或者如果符合要求则继续