Mam widok tabeli z wieloma komórkami w nim. Chcę uzyskać ramkę komórki, a nie w jej współrzędnych przestrzeni superwizji, ale w przestrzeni współrzędnych widoku tabeli.Jak mogę uzyskać ramkę komórki widoku tabeli w przestrzeni współrzędnych widoku tabeli?
Obraz prawdopodobnie wytłumaczyć lepiej
Zobacz czerwony prostokąt? To jest ramka komórki tabeli. A niebieski prostokąt to ramka widoku tabeli. Chcę uzyskać czerwony prostokąt, który jest względem niebieskiego prostokąta.
Próbowałem użyć właściwości frame
z UITableViewCell
. Ale to nie działa, ponieważ zwraca (0, 0, 320, 44). Wartość Y nie powinna wynosić zero, ponieważ komórka nie znajduje się w górnej części ekranu.
Według hierarchii widzenia jest to zamierzone zachowanie, ponieważ superview komórki tabeli jest widocznie ten UITableViewWrapperView
, a nie widok tabeli:
podczas gdy widok tabeli jest następująca:
Więc jest jakiś sposób/nieruchomość, która może załatwić mi CGRect
który reprezentuje ramkę widoku tabeli komórka w obszarze współrzędnych widoku tabeli?
Myślę, że istnieje funkcja, która umożliwia konwersję CGRect
w przestrzeni współrzędnych na inną. Ale zapomniałem jego nazwy i sposobu użycia. Nie wiem, czy jest to pomocne w tej sytuacji.
Co jest 'rectOfCellInTableView'? Czy chodziło Ci o 'rectOfCell'? – Sweeper
To nie działa dla mnie. Wydaje się, że metoda 'convertRect' nie uwzględnia wysokości nagłówków sekcji. Prostokąt jest nieco wyższy niż komórka tabeli. tj. ma jakieś -y przesunięcie. – Sweeper
Następnie możesz spróbować uzyskać rect dla sekcji, a następnie dodać y + (heightOfCell) (indexPath.row) komórki, aby uzyskać pozycję komórki y. –