2011-04-06 25 views
7

¿En qué orden se solicitan los siguientes métodos para una UITableView?¿En qué orden se llaman los métodos de enlace UITableView?

  • numberOfSectionsInTableView
  • numberOfRowsInSection
  • cellForRowAtIndexPath
  • heightForRowAtIndexPath
  • didChangeObject (NSFetchedResultsController)

Por favor, incluya cualquier otro método de gancho pertinentes que pueden haber dejado fuera.

Respuesta

12

Me daría miedo preocuparme por el orden en que se llaman estos métodos. Estos métodos tienen propósitos muy específicos y completos. A pesar de que los métodos se llaman en un cierto orden en este momento, eso no significa que siempre se llamarán en ese orden, por lo que es peligroso hacer suposiciones en su código en cuanto al orden en que se llaman. Por ejemplo, cellForRowAtIndexPath no se llama para todas las filas. Solo se llama a filas visibles y luego se solicitan filas adicionales a medida que el usuario se desplaza hacia ellas. Las filas antiguas también se destruyen a medida que salen de la pantalla y solicitará las celdas nuevamente si el usuario se desplaza hacia atrás.

En pocas palabras, ya que la orden no está especificada en la documentación de Apple, no se puede asumir que siempre se llamarán en el mismo orden y generalmente no es una buena idea hacer tales suposiciones en su implementación.

Cuestiones relacionadas