iphone objective-c ios uitableview viewdidappear

iphone - viewDidAppear para UITableViewCell



objective-c ios (3)

El UITableViewDelegate tiene estas funciones:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)

La celda en sí no tiene devoluciones de llamada para esto.

Usualmente uso el método viewDidAppear para hacer algunas cosas de UI en la vista después de que terminó de aparecer y usé este método en varias situaciones donde fue muy útil, sin embargo, necesito hacer algunos cambios de UI en un UITableViewCell después de que termine de aparecer, ¿está ahí? ¿ UITableViewCell método disponible en el SDK que haga un trabajo similar como viewDidAppear pero para UITableViewCell ?

ps willDisplayCell no funcionó en mi caso, necesito algo como didDisplayCell si realmente existe.


El método viewDidLoad está relacionado con UIViewController y sus subclases, por lo que no podemos usar esto en UITableViewCell, que es una subclase UIView. La solución que utilicé en una de mis aplicaciones es anular el método layoutSubViews de UITableViewCell, y demoré la acción durante algún tiempo como se indica a continuación.

- (void)layoutSubViews { [super layoutSubviews]; [self performSelector:@selector(myMethod) withObject:nil afterDelay:1.0]; }


Si necesita responder a los cambios en el marco de la celda y ajustar el diseño, debe implementar -layoutSubviews en la clase de celda. Recuerda llamar a [super layoutSubviews] .