2010-08-03 15 views
8

Entonces, tengo este UITableView. Está en una aplicación de iPad. Algunas de las celdas tienen un botón de accesorios a la derecha (la pequeña flecha redonda). Cuando se presiona, presento una vista de popover donde el usuario puede seleccionar acciones relacionadas con la celda de la tabla que tocaron. Hasta el momento, nada de esto es difícil o excepcional.Obtener en la pantalla las coordenadas de una cierta UITableViewCell?

Pero la vista de popover quiere saber de dónde proviene, para que pueda dibujar la pequeña flecha que apunta allí. Naturalmente, me gustaría que esa flecha apuntara a la celda de la tabla con la que se relaciona el popover.

¿Cómo puedo saber las coordenadas actuales en pantalla para una celda determinada en una tabla, dado que sé que es indexPath?

Respuesta

28

Utilice el método UITableView -rectForRowAtIndexPath:. Tenga en cuenta que eso devuelve un rect dentro del sistema de coordenadas de la vista de tabla: si necesita la rect relativa a otra vista dentro de la misma ventana, use el método UIView -convertRect:fromView:.

+4

Dios mío, ¡es tan simple! Debo haber estado buscando en todos los lugares equivocados. –

+1

Cuidado con eso, si la UITableCell está fuera de pantalla, le dará la coordenada y dentro de la vista de tabla, no la coordenada de pantalla real. De lo contrario, este método funciona muy bien! – TChadwick

+0

Este método solo le proporciona el desplazamiento desde la vista de desplazamiento, contiene la vista de tabla. Así obtendrá el tamaño correcto, pero si su tablaVerlo no se encuentra en la parte superior de su vista, no calculará esto. Evento si se desplaza hacia abajo, este método no respetará eso. –

Cuestiones relacionadas