2010-09-27 12 views
5

Me gustaría construir unos pocos temporizadores de cuenta regresiva simples en una UITableview. Noté que la aplicación Reloj mundial tiene relojes animados en cada una de sus filas. ¿Cuál es el mejor método para disparar un NSTimer para actualizar cada fila de la tabla? ¿Se puede ejecutar un único temporizador que actualice todas las celdas o debería tener una subclase de vista personalizada con un temporizador integrado que se agrega a cada fila?NSTimer para UITableviewcell similar a la aplicación World Clock

Estoy tratando de obtener un curso de acción apropiado.

Respuesta

6

Un temporizador es suficiente. Cuando se dispare, pregunte en la vista de tabla por las celdas visibles y actualícelas una por una. También puede llamar al reloadData cuando se dispara el temporizador pero, dependiendo de cómo dibuje las celdas, puede hacer más trabajo de lo necesario y no puede usar animaciones.

3

Simplemente sepa que necesita programar el temporizador para disparar más de una vez por segundo. NSTimer no es un dispositivo de precisión; lo está programando para la próxima ranura de procesador disponible después de la duración de tiempo que especifique. Entonces, un NSTimer de 1 segundo NO se disparará en exactamente un segundo, y puede acumular bastante error con el tiempo. Desea que cobre vida varias veces por segundo, observe la hora actual, observe cuándo ha pasado un segundo y realice las actualizaciones de UI/datos apropiadas para ese hecho.

Cuestiones relacionadas