How to deselect a selected UITableView cell?

前端 未结 24 3135
一整个雨季
一整个雨季 2020-12-07 10:10

I am working on a project on which I have to preselect a particular cell.

I can preselect a cell using -willDisplayCell, but I can\'t deselect it when t

24条回答
  •  無奈伤痛
    2020-12-07 10:11

    In addition to setting the cell as selected, you also need to inform the tableView that the cell is selected. Add a call to -tableView:selectRowAtIndexPath:animated:scrollPosition: to your willDisplayCell: method: and you will be able to deselect it as normal.

    - (void)tableView:(UITableView*)tableView 
      willDisplayCell:(UITableViewCell*)cell
    forRowAtIndexPath:(NSIndexPath*)indexPath
    { 
        AppDelegate_iPad *appDelegte = (AppDelegate_iPad *)[[UIApplication sharedApplication] delegate];
    
        if ([appDelegte.indexPathDelegate row] == [indexPath row])
        {
            // SELECT CELL
            [cell setSelected:YES]; 
            // TELL TABLEVIEW THAT ROW IS SELECTED
            [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];   
        } 
    }
    

    Be sure to use UITableViewScrollPositionNone to avoid odd scrolling behavior.

提交回复
热议问题