2010-04-14 14 views

Respuesta

46

Ajuste el selection style of the UITableViewCell-UITableViewCellSelectionStyleNone

+55

Esto no hace que la célula no seleccionable se solo significa que la apariencia visual de la celda no cambia cuando se selecciona. 'tableView: didSelectRowAtIndexPath:' todavía recibe llamadas cuando se toca la celda. Para evitar realmente la selección, necesita [implementar tableView: willSelectRowAtIndexPath:] (http: // stackoverflow.com/a/812921/172218) en su 'UITableViewDelegate' y devuelve nil para filas no seleccionables. –

+0

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

10

que puede hacer

cell.selectionStyle = UITableViewCellSelectionStyleNone; 
+1

Falta un punto. Aquí está la versión fija: cell.selectionStyle = UITableViewCellSelectionStyle.None –

50

Para que sea completamente no seleccionable se requieren dos cosas:

1- Como otros dijeron:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

2- Necesita implementar este método delegado:

// 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 Sintaxis:

cell.selectionStyle = UITableViewCellSelectionStyle.None 
9

del guión establece lo siguiente para la Tabla:

Selección: Sin selección

Mostrar selección en el tacto : Falso

enter image description here

1

implementar esta method de UITableViewDelegate

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

estoy respondiendo desde el punto de vista de la desactivación TableViewCell. Puedes usar el guión gráfico.

XCode Version 8.2.1 (8C1002)

Seleccione la TableVewCell el guión gráfico y después será visible en el panel lateral derecho - Utilidades.

Utilities Sidebar

hacer la selección : Ninguno

Eso es todo!

1

actualización en Swift 3:

cell.selectionStyle = UITableViewCellSelectionStyle.none 
0

Para Swift 3:

cell.selectionStyle = .none 
+0

Como se sugirió anteriormente "Esto no hace que la celda no se pueda seleccionar, solo significa que la apariencia visual de la celda no cambia cuando se selecciona. TableView: didSelectRowAtIndexPath : aún se invoca cuando se toca la celda. Para evitar realmente la selección, debe implementar tableView: willSelectRowAtIndexPath: en su UITableViewDelegate y devolver nil para las filas no seleccionables. - " – Siyavash

+0

@Siyavash como se indicó en la pregunta original, esta persona solo quiere para ocultar "el indicador azul seleccionado". Eso no es lo mismo que querer hacerlo completamente no seleccionable. Simplemente, la persona que hace la pregunta solo intenta ocultar la indicación visual de una selección. –

1

de Swift 3 Puede utilizar

cell.isUserInteractionEnabled = false 
+0

puede agregar información – Kondal

+0

acaba de pasar ese código en el método de tabla de celdaForRowAt indexPath, es simple –

+0

este método es útil cuando desea inhabilitar la interacción del usuario en la vista de tabla; de lo contrario, puede usar el método compartir por el Sr. Ben Abajo –

Cuestiones relacionadas