2012-04-17 23 views
38

? No quiero decir que quiero deshabilitar el desplazamiento. Quiero ser capaz de decirle a la tabla que deje de moverse en forma programática (pero luego debe seguir siendo desplazable después de). es posible?¿Cómo puedo hacer que una UITableView deje de desplazarse

+0

Try mirando este enlace: http://stackoverflow.com/questions/986392/programmatically-force-a-uiscrollview-to-stop-scrolling-for-sharing-a-table-vie Esto también podría funcionar: [tableView setContentOffset: tableView.contentOffset animated: NO]; Espero que ayude. :) – wayway

+0

Este título es un poco engañoso. –

+0

@JonathanKing: No creo que sea para nada. Hay una gran diferencia entre "cómo hacer que una tabla deje de desplazarse" y "cómo evito que una tabla se desplace". También es el motivo por el cual las preguntas tienen un título y una descripción más larga para acompañarlo. – MusiGenesis

Respuesta

102

A UITableView es una subclase de UIScrollView. Si usted le dice que para desplazarse hasta su posición actual, se detendrá el desplazamiento por lo que este debe trabajar para usted:

[tableView setContentOffset:tableView.contentOffset animated:NO]; 
+0

Bueno, eso funcionó, pero solo funciona para evitar que la mesa se desplace. Si la tabla no tiene suficientes filas para desplazarse realmente, si lo hago, seguirá rebotando un poco, lo que desencadenará la llamada a scrollViewDidScroll: lo cual estoy intentando evitar al detener el desplazamiento – MusiGenesis

+4

En ese caso, debe deshabilitar el desplazamiento si la vista de tabla no tiene suficientes filas. – ndfred

+3

Esto simplemente no está funcionando. – iOSdev

7

conjunto tableView.alwaysBounceVertical = NO;

+0

¿Cómo responde esto algo a la pregunta? – Rambatino

+0

@Rambatino: Creo que el usuario estaba respondiendo a mi comentario en la respuesta seleccionada sobre cómo evitar el rebote, aunque esto hubiera sido mejor como comentario. – MusiGenesis

17

vincular a su vista de tabla a una variable llamada tableView, a continuación, con la siguiente línea puede desactivar el desplazamiento:

tableView.scrollEnabled = NO; 

Set a YES, si usted quiere que sea desplazable de nuevo.

+1

+1 funciona en mi caso. – Shinichi

-1

Si está utilizando controlador de vista de tabla, siga los pasos siguientes

  1. Seleccionar controlador de vista de la tabla de guión gráfico
  2. Ir a atribuir Inspector> ScrollView
  3. Desactive el desplazamiento activado
+0

la pregunta claramente establece programáticamente – Ryan

+0

@Ryan, ¡tienes razón! – Vats

Cuestiones relacionadas