Tengo un problema complicado en cuanto a la actualización de mi TableView, i obtener resultados diferentes usando diferentes métodos de su actualización, me explico:TableView reloadData vs beginUpdates y endUpdates
Situación 1: utilizo [tbl reloadData];
donde tbl
es mi TableView, para actualizar el TableView - funciona según lo previsto.
Situación 2: I utilizar:
[tbl beginUpdates];
[tbl reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationRight];
[tbl endUpdates];
Dónde tbl
es mi TableView, y indexPaths
es una matriz que contiene todos los indexPaths presentes en el TableView. Ahora la matriz está bien, contiene todos los IndexPaths correctos (dobles y triples marcados) pero por alguna razón, esto no funciona como se esperaba.
Ahora me doy cuenta de que este es un problema XY (donde pido Y pero mi problema es realmente X porque creo que resolver Y resolverá X) y eso es solo porque creo que es un poco complicado explicar X (la consecuencia de dijo el problema anterior) de una manera fácil, así que prefiero abstenerme de eso si es posible.
Por lo tanto, a mi pregunta: ¿Hay alguna diferencia entre las dos formas de actualizar el TableView (aparte del bit de animación por supuesto) o debería sospechar que el problema está en otro lugar?
EDIT: Está bien, voy a tratar de explicar lo que los síntomas son:
En el cellForRowAtIndexPath
-method agrego un botón para cada celda con una etiqueta asignada que es igual a la fila indexPath de la célula , como por ejemplo:
btn.tag = indexPath.row;
la razón por la que hago esto es para que pueda identificar cada botón, ya que todos llaman a la misma función:
- (void)btnPressed:(id)sender
Cuando actualizo las celdas, porque algunos valores en las celdas han cambiado, la situación 1 hace que todo funcione bien, la situación 2 sin embargo, mezcla las etiquetas para que la próxima vez que se presione uno de los botones, ya no tengan el etiquetas correctas.
La confusión parece aleatoria para mí, pero la aleatorización se produce de forma diferente según el botón de las celdas que pulse primero. Espero que esto aclare mi problema.
"obtengo resultados diferentes", "esto no funciona como se esperaba". ¿En qué manera? – TigerCoding
Bueno, cada celda recibe un botón al momento de la creación, con una etiqueta, donde 'la etiqueta del botón = la fila de la ruta del índice'. En la situación 1, el botón obtiene la etiqueta correcta, en la situación 2: no. –