2013-07-05 2 views
0

Я хочу показать ссылки между двумя ячейками uiTableView.Как нарисовать соединительные линии между двумя uitableviewcells ios

Для Ex: Чтобы показать связь между клетками 1 и 5, можно показать, как: enter image description here

ли кто имеет какие-либо идеи, как это может быть достигнуто. Также при прокрутке таблицы эти ссылки должны быть прокручены вместе с ним.

+0

http://www.raywenderlich.com/tag/core-graphics – Desdenova

ответ

0

Похоже, вы хотите построить иерархический вид. Возможно, ваша реализация может быть отклонена Apple из-за отсутствия учета HIG.

Также, что будет, если нижняя часть не будет видна пользователю? Стрелка без конца и нужно прокрутить вниз для пользователя?

Возможно, вы захотите сделать дерево как структуру (что-нибудь иерархическое) вместо уродливого (извините за это) стрелки.

+0

Это не иерархические представления. Это отдельные ячейки. Я просто хочу показать, что они связаны каким-то образом. Приложение не работает в магазине приложений, поэтому я не очень беспокоюсь о HIG. Придется работать с пользовательским интерфейсом, это просто грубая версия Спасибо –

0

Если вы хотите стрелка между двумя клетки затем сделать отдельный UIView класс для TableCell, в этом UIView добавьте UILabel для текста и один UIImageView для стрелки, отрегулируйте положение там согласно вашему требованию.

Теперь передайте это UIView в ячейку.

Надеюсь, это вам поможет.

+0

Я думаю, что это решение будет работать только в том случае, если ячейки являются одинаковыми разделами. –

0

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: (я не сделал этого точную вещь, но я сделал некоторые подобные вещи с кадрами клеток)

Смежные вопросы