Pregunta

Estoy desarrollando una aplicación iOS y estoy teniendo algunos problemas para decidir cómo abordar un problema.

Estoy utilizando dos UITableViewControllers para mostrar diferentes vistas de los mismos datos. Se trata de una lista maestra, y el otro sólo contiene objetos que están marcados como "favorito". También los artículos son de altura variable, por lo que estoy usando "heightForRowAtIndexPath" para indicar la altura de cada elemento. El problema es la velocidad, al cambiar de una vista a otra, que necesita ser actualizado para mostrar los cambios realizados en el otro (marcado favorito / unfavourite).

  

Solución # 1 :

     

Actualizar los datos cada vez que una vista de tabla se hace visible. Esto no funciona muy bien porque, aunque los datos son de visualización utilizando la carga diferida, el "heightForRowAtIndexPath" se llama para cada artículo antes de cargar los datos, y su lenta. en mi iPhone 4 una lista de alrededor de 300 artículos se llevan cerca de cuatro segundos en cargar, incluso si se almacenan en caché los valores de altura (el cuello de botella es la aplicación de la altura, no recuperarla).

  

Solución # 2 :

     

manualmente manipular las tablas cuando se realizan cambios. No he probado esto, pero es probable que se buggy. Sus pensamientos?

  

Solución # 3

     

El uso de un sistema de tipo de notificación para notificar a la otra mesa de cambios a los artículos que actualmente pueden ser cargados. No he probado esto, porque parece exagerado y podría no funcionar en absoluto.

¿Alguien sabe de una manera fácil de mostrar dos vistas de los mismos datos?

No hay solución correcta

Otros consejos

Se puede recargar con n filas reloadRowsAtIndexPaths: withRowAnimation. Nunca lo hice, pero creo que está ahí porque es más rápido, por lo que es posible que desee probarlo.

En el heightForRow: cosita, puedo recordar haber leído en la documentación de Apple que esa función es en realidad un asesino para el rendimiento. Tal vez usted podría tomar la altura máxima de las filas, y que en el conjunto UITableView.rowHeight?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top