UIPopoverController через UITableViewCell - PullRequest
3 голосов
/ 18 апреля 2011

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

Этот код отлично работает, когда в таблице нет прокрутки, для просмотра таблицы прокрутки стрелка всплывающего окна расположена неправильно.

[self.EventsTableView selectRowAtIndexPath:indexPath 
                                  animated:YES 
                            scrollPosition:UITableViewScrollPositionMiddle];

[popoverController presentPopoverFromRect:CGRectOffset(cell.frame, 0, cell.frame.size.height + self.EventsTableView.contentOffset) 
                                   inView:self.view      
                 permittedArrowDirections:UIPopoverArrowDirectionLeft 
                                 animated:YES];

Спасибо за любую помощь

Ответы [ 2 ]

6 голосов
/ 18 апреля 2011

Вы должны передать клетку как вид. Скорее всего, вы захотите передать границы ячейки (cell.bounds, а не cell.frame) для прямоугольника.

4 голосов
/ 03 июня 2011

Вышеописанный метод не работал для меня, когда пользователь прокручивал список вниз. Трюк находил положение ячейки относительно прокручиваемого количества.

CGRect rect = [tableView convertRect:[tableView rectForRowAtIndexPath:indexPath]
    toView:tableView]; 

[popoverController presentPopoverFromRect:rect
    inView:tableView
    permittedArrowDirections:UIPopoverArrowDirectionAny
    animated:YES];
...