UITableViewCell
является подклассом UIView
и UITableView
является подклассом UIScrollView
. Единственное причудливость, которую предоставляет UITableView, - это создание/повторное использование ячеек и их размещение в прокрутке. (Это грубое чрезмерное упрощение, но для этого это сделает трюк.)
Так что, если у меня есть подкласс UIView
, который рисует стрелку, то это просто вопрос получения кадра для ячеек, которые я хочу указать к. CGRect frame1 = [[self.tableView cellForRowAtIndexPath:indexPath] frame];
Некоторые псевдокод ...
topCellFrame = get top cell frame;
bottomCellFrame = get bottom cell frame;
arrow = new arrow view;
arrow set frame = frame with origin of top cell frame origin, and height of distance from topCellFrame to bottomCellFrame;
tableView add subview = arrow;
Есть крайние случаи, чтобы думать, если верхняя ячейка или нижняя ячейка являются закадровый по cellForRowAtIndexPath:
вернет ноль, и кадр будет CGRectZero
.
Но я оставлю это как упражнение для вас.
Edit: (я не сделал этого точную вещь, но я сделал некоторые подобные вещи с кадрами клеток)
http://www.raywenderlich.com/tag/core-graphics – Desdenova