J'utilise généralement la méthode viewDidAppear
pour faire des trucs d'interface utilisateur sur la vue une fois qu'elle est apparue et j'ai utilisé cette méthode dans diverses situations où elle était très utile, cependant, je dois faire quelques changements d'interface utilisateur sur un UITableViewCell
après son apparition, existe-t-il une méthode disponible dans le SDK qui effectue un travail similaire comme viewDidAppear
mais pour UITableViewCell
?
p.s. willDisplayCell
n'a pas fonctionné dans mon cas, j'ai besoin de quelque chose comme didDisplayCell
s'il existe vraiment.
Le UITableViewDelegate
a ces fonctions:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath)
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath)
La cellule elle-même n'a pas de rappel pour cela.
Si vous devez réagir aux modifications apportées au cadre de la cellule et ajuster la disposition, vous devez implémenter -layoutSubviews
dans la classe de cellule. N'oubliez pas d'appeler [super layoutSubviews]
.
La méthode viewDidLoad
est liée à UIViewController et ses sous-classes, nous ne pouvons donc pas l'utiliser dans UITableViewCell, qui est une sous-classe UIView. La solution que j'ai utilisée dans l'une de mes applications est de remplacer la méthode layoutSubViews
de UITableViewCell, et j'ai retardé l'action pendant un certain temps comme ci-dessous.
- (void)layoutSubViews
{
[super layoutSubviews];
[self performSelector:@selector(myMethod) withObject:nil afterDelay:1.0];
}