2010-08-03 12 views
8

Quindi, ho questo UITableView. È in un'applicazione iPad. Alcune celle hanno un pulsante accessorio sulla destra (la piccola freccia rotonda). Quando viene premuto, visualizzo una vista popover in cui l'utente può selezionare azioni correlate alla cella della tabella che hanno toccato. Finora, nulla di questo è difficile o eccezionale.Ottieni le coordinate sullo schermo di un certo UITableViewCell?

Ma la vista del popover vuole sapere da dove proviene, in modo che possa disegnare la piccola freccia che punta lì. Mi piacerebbe naturalmente che la freccia indicasse la cella del tavolo a cui si riferisce il popover.

Come posso trovare le coordinate sullo schermo per una determinata cella in una tabella, dato che so che è indexPath?

risposta

28

Utilizzare il metodo UITableView -rectForRowAtIndexPath:. Nota che restituisce un rect all'interno del sistema di coordinate della vista tabella: se hai bisogno del rect relativo ad un'altra vista all'interno della stessa finestra, usa il metodo UIView -convertRect:fromView:.

+4

Mio Dio, è così semplice! Devo aver cercato nei posti sbagliati. –

+1

Attento con quello, se UITableCell è fuori dallo schermo qui sotto, ti darà la coordinata y per esso all'interno della vista tabella e non la coordinata effettiva dello schermo. Altrimenti questo metodo funziona alla grande! – TChadwick

+0

Questo metodo fornisce solo l'offset dalla vista a scorrimento, contiene la tabella. Quindi otterrai le giuste dimensioni ma se la tua tabella non si trova nella parte superiore della tua vista, non la calcolerà. Evento se scorri verso il basso, questo metodo non lo rispetterà. –

Problemi correlati