Это может показаться сложным, но, возможно, я могу указать вам правильный путь.
Во-первых, вам нужен надежный способ начать длинную печать и следить за кастрюлей. Вам, вероятно, понадобится использовать UIPanGestureRecognizer
в сочетании с UILongPressGestureRecognizer
, применяемым к самому представлению (а не к ячейкам). Когда активатор панорамирования активирован, вам необходимо отключить распознаватели жестов UITableView
, чтобы они не мешали. Все это потребует UIGestureRecognizerDelegate
.
Посмотреть этот пост еще некоторую информацию об объединении длительное нажатие & панорамирование распознавателей:
Combining a UILongPressGestureRecognizer with a UIPanGestureRecognizer
Далее вам нужен эффективный способ попадания тестирования клеток в представлении. Предполагая, что вы используете self.view для жеста распознавателей, попробуйте:
if (panRecognizer.state == UIGestureRecognizerStateBegan || sender.state == UIGestureRecognizerStateChanged) {
CGPoint location = [panRecognizer locationInView:self.view];
UIView *subview = [self.view hitTest:location withEvent:nil];
}
Затем вы можете связать его с ячейкой в вашем представлении таблицы и вызвать выделение:
if ([subview isKindOfClass:[UITableViewCell class]]) {
NSIndexPath *path = [tableView indexPathForCell:(UITableViewCell *)subview];
[tableView selectRowAtIndexPath:path animated:YES scrollPosition:UITableViewScrollPositionNone];
}
Это все чисто гипотетический, но это должен быть простой способ приблизиться к этой проблеме. Задача будет заключаться в настройке распознавателей жестов для совместной работы с табличным представлением.
Дайте мне знать, если у вас есть вопросы!
Не проголосуйте за вопрос, потому что у вас есть проблема с заголовком заголовка, тем не менее, я ценю запрос на редактирование. – patrickjquinn