如何禁用UITableView的单个单元格的选择?

时间:2011-06-11 20:05:09

标签: iphone uitableview

一旦用户点击触发操作的单元格,我想禁用用户交互,然后在操作完成后重新启用用户交互。有人能告诉我怎么做吗?

3 个答案:

答案 0 :(得分:8)

只需检查TableView委托方法中的条件:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *categoryIdentifier = @"Category";
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    //Way to stop to choose the cell selection
     if(indexpath.row == 0){
         cell.selectionStyle = UITableViewCellSelectionStyleNone;
         // OR 
         cell.userInteractionEnabled=False;
     }
     //while rest of the cells will remain active, i.e Touchable

    return cell;

}

答案 1 :(得分:1)

只需在操作开始时添加一个设置为true的BOOL变量。然后实现tableview的委托的-[tableView:willSelectRowAtIndexPath:]方法,以便当该变量当前为该索引路径为真时返回nil

答案 2 :(得分:1)

或者您可以在操作正在运行时生成selectionStyle

    cell.selectionStyle = UITableViewCellSelectionStyleNone;