Tengo una costumbre UITableView
usando UITableViewCell
s. Cada uno UITableViewCell
tiene 2 botones. Al hacer clic en estos botones, cambiará una imagen UIImageView
dentro de la celda.
¿Es posible actualizar cada celda por separado para mostrar la nueva imagen? Cualquier ayuda es apreciada.
objective-c
uitableview
Mago de iOS
fuente
fuente
[NSArray arrayWithObject:]
en su lugar.beginUpdates
yendUpdates
son innecesarios.Intenté simplemente llamar
-[UITableView cellForRowAtIndexPath:]
, pero eso no funcionó. Pero, lo siguiente funciona para mí, por ejemplo. Yoalloc
yrelease
elNSArray
para la gestión de la memoria apretada.fuente
Rápido:
fuente
reloadRowsAtIndexPaths:
está bien, pero aún obligará a losUITableViewDelegate
métodos a disparar.El enfoque más simple que puedo imaginar es:
Es importante invocar su
configureCell:
implementación en el subproceso principal, ya que no funcionará en un subproceso que no sea UI (la misma historia conreloadData
/reloadRowsAtIndexPaths:
). A veces puede ser útil agregar:También vale la pena evitar el trabajo que se realizaría fuera de la vista actualmente visible:
fuente
Si está utilizando TableViewCells personalizados, el genérico
no responde efectivamente esta pregunta a menos que abandone la vista actual y regrese. Tampoco la primera respuesta.
Para recargar con éxito su primera celda de vista de tabla sin cambiar de vista , use el siguiente código:
Inserte el siguiente método de actualización que llama al método anterior para que pueda volver a cargar de forma personalizada solo la celda superior (o la vista de tabla completa si lo desea):
Ahora que tiene eso ordenado, dentro de su
viewDidLoad
agregar lo siguiente:Ahora tiene una función de tabla de actualización personalizada que volverá a cargar la celda superior. Para volver a cargar toda la tabla, agregue el
[self.tableView reloadData];
a su nuevo método de actualización.Si desea volver a cargar los datos cada vez que cambia de vista, implemente el método:
fuente
Swift 3:
fuente
Solo para actualizar estas respuestas ligeramente con la nueva sintaxis literal en iOS 6: puede usar Paths = @ [indexPath] para un solo objeto, o Paths = @ [indexPath1, indexPath2, ...] para varios objetos.
Personalmente, he encontrado que la sintaxis literal para matrices y diccionarios es inmensamente útil y ahorra mucho tiempo. Es más fácil de leer, por un lado. Y elimina la necesidad de un cero al final de cualquier lista de objetos múltiples, que siempre ha sido un bugaboo personal. Todos tenemos nuestros molinos de viento para inclinar, ¿sí? ;-)
Solo pensé en tirar esto en la mezcla. Espero eso ayude.
fuente
Aquí hay una extensión UITableView con Swift 5:
Llamar con
fuente
Necesito la celda de actualización pero quiero cerrar el teclado. Si yo uso
el teclado desaparece
fuente