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]
.