2010-04-14 9 views

Répondre

46

Réglez le selection style of the UITableViewCell-UITableViewCellSelectionStyleNone

+55

Cela ne fait pas non sélectionnable la cellule elle signifie simplement que l'apparence visuelle de la cellule ne change pas lorsqu'elle est sélectionnée. 'tableView: didSelectRowAtIndexPath:' est toujours appelé quand la cellule est tapée. Pour empêcher la sélection, vous devez [implémenter tableView: willSelectRowAtIndexPath:] (http: // stackoverflow.com/a/812921/172218) sur votre UITableViewDelegate' et renvoyez zéro pour les lignes non sélectionnables. –

+0

Swift 3 - 'cell.selectionStyle = UITableViewCellSelectionStyle.none' – John

10

vous pouvez faire

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+1

Un point est manquant. Voici la version corrigée: cell.selectionStyle = UITableViewCellSelectionStyle.None –

50

Pour le rendre complètement deux choses non sélectionnables sont nécessaires:

1- Comme d'autres ont dit:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

2- Vous devez implémenter cette méthode de délégation:

// Called before the user changes the selection. Return a new indexPath, or nil, to change the proposed selection. 
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if(cell.selectionStyle == UITableViewCellSelectionStyleNone){ 
     return nil; 
    } 
    return indexPath; 
} 
4

Swift Syntaxe:

cell.selectionStyle = UITableViewCellSelectionStyle.None 
9

De l'Storyboard fixé comme suit pour le tableau Vue:

Sélection: Aucune sélection

Afficher la sélection sur tactile : Faux

enter image description here

1

Mettre en oeuvre cette method de UITableViewDelegate

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 
1
myTable.allowsSelection = false 
3

Je réponds du point de vue de la désactivation TableViewCell. Vous pouvez utiliser le storyboard.

XCode Version 8.2.1 (8C1002)

Sélectionnez le story-board sur TableVewCell et suivants seront visibles sur le panneau latéral droit - Utilitaires.

Utilities Sidebar

Effectuez la sélection : Aucun

C'est tout!

1

Mise à jour à Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none 
0

Swift 3:

cell.selectionStyle = .none 
+0

Comme suggéré ci-dessus "Cela ne rend pas la cellule non-sélectionnable, cela signifie simplement que l'aspect visuel de la cellule ne change pas quand il est sélectionné tableView: didSelectRowAtIndexPath : toujours appelé lorsque la cellule est sélectionnée Pour empêcher la sélection, vous devez implémenter tableView: willSelectRowAtIndexPath: sur votre UITableViewDelegate et renvoyer zéro pour les lignes non sélectionnables - " – Siyavash

+0

@Siyavash comme indiqué dans la question initiale, cette personne ne veut que cacher "l'indicateur bleu sélectionné". Ce n'est pas la même chose que de vouloir le rendre complètement non sélectionnable. Tout simplement, la personne qui pose la question essaie seulement de cacher l'indication visuelle d'une sélection. –

1

Swift 3 vous pouvez utiliser

cell.isUserInteractionEnabled = false 
+0

pouvez juste ajouter des informations – Kondal

+0

juste après ce code dans cellForRowAt méthode indexPath de vue de la table, son –

+0

simple cette méthode est utile lorsque vous voulez désactiver l'interaction utilisateur sur la vue de la table sinon vous pouvez utiliser le partage de méthode par Mr Ben Below –

Questions connexes