Ho una vista tabella con un mucchio di celle al suo interno. Voglio ottenere il frame di una cella, non nello spazio delle coordinate della sua superview, ma nello spazio delle coordinate della vista tabella.Come posso ottenere il frame di una cella di visualizzazione tabella nello spazio delle coordinate della vista tabella?
Un quadro sarebbe probabilmente meglio spiegare questo
Vedere il rettangolo rosso? Questa è la cornice della cella della tabella. E il rettangolo blu è la cornice della vista tabella. Voglio ottenere il rettangolo rosso relativo al rettangolo blu.
Ho provato a utilizzare la proprietà frame
di UITableViewCell
. Ma questo non funziona perché restituisce (0, 0, 320, 44). Il valore Y non dovrebbe essere zero perché ovviamente la cella non si trova nella parte superiore dello schermo.
Secondo la gerarchia della vista, questo è il comportamento previsto, perché il superview di una cella della tabella è a quanto pare questo UITableViewWrapperView
, non la vista tabella:
mentre la vista tabella è questo:
Quindi non v'è un metodo/proprietà che può farmi un CGRect
che rappresenta la cornice della vista tabella cella nello spazio delle coordinate della vista tabella?
Penso che ci sia una funzione in grado di convertire uno CGRect
in uno spazio di coordinate in un altro. Ma ho dimenticato il suo nome e come usarlo. Non so se sia utile in questa situazione.
Qual è 'rectOfCellInTableView'? Intendevi 'rectOfCell'? – Sweeper
Questo non funziona per me. Il metodo 'convertRect' non sembra prendere in considerazione l'altezza delle intestazioni di sezione. Il rect è un po 'più alto della cella della tabella. cioè ha un offset di -y. – Sweeper
Quindi puoi provare a ottenere il rect per la sezione e quindi aggiungere y + (heightOfCell) (indexPath.row) della cella per ottenere la posizione della cella y. –