web-dev-qa-db-fra.com

Comment obtenir le cadre d'une cellule de vue de table dans l'espace de coordonnées de la vue de table?

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

enter image description here

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:

enter image description here

tandis que la vue de table est la suivante:

enter image description here

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.

17
Sweeper

Veuillez utiliser le code ci-dessous

let rectOfCell= tableView.rectForRowAtIndexPath(indexPath)
let rectOfCellInSuperview = tableView.convertRect(rectOfCell, toView: tableView.superview)
31
Jasmeet Kaur