J'ai une vue de table avec un tas de cellules. Je veux obtenir le cadre d'une cellule, non pas dans l'espace de coordonnées de sa vue d'ensemble, mais dans l'espace de coordonnées de la vue de table.
Une photo expliquerait probablement mieux cela
Vous voyez le rectangle rouge? C'est le cadre de la cellule du tableau. Et le rectangle bleu est le cadre de la vue de table. Je veux obtenir le rectangle rouge qui est relatif au rectangle bleu.
J'ai essayé d'utiliser la propriété frame
de UITableViewCell
. Mais cela ne fonctionne pas car il revient (0, 0, 320, 44). La valeur Y ne doit pas être nulle car, évidemment, la cellule n'est pas en haut de l'écran.
Selon la hiérarchie des vues, c'est le comportement souhaité, car la vue d'ensemble d'une cellule de tableau est apparemment cette UITableViewWrapperView
, pas la vue de table:
tandis que la vue de table est la suivante:
Y a-t-il donc une méthode/propriété qui peut me fournir un CGRect
qui représente le cadre de la cellule de vue de table dans l'espace de coordonnées de la vue de table?
Je pense qu'il existe une fonction qui peut convertir un CGRect
dans un espace de coordonnées en un autre. Mais j'ai oublié son nom et comment l'utiliser. Je ne sais pas si c'est utile dans cette situation.
Veuillez utiliser le code ci-dessous
let rectOfCell= tableView.rectForRowAtIndexPath(indexPath)
let rectOfCellInSuperview = tableView.convertRect(rectOfCell, toView: tableView.superview)