Я добавил UILongPressGestureRecognizer
в мой UICollectionView
, который находится в подклассе UIScrollView
. (UIScrollView
выгружается так, что есть 3 горизонтально уложенных UIViewController
s).UICollectionView в UIScrollView: Long Press
Мой код для добавления UILongPressGestureRecognizer
:
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
longPress.delegate = self;
longPress.minimumPressDuration = 0.5;
longPress.delaysTouchesBegan = YES;
[self.collectionView addGestureRecognizer:longPress];
И в NSLog
в моем handleLongPress:
методе. В настоящее время я держусь за UICollectionViewCell
, он выделяется, но длительное нажатие не активируется. Я считаю, что мой подкласс UIScrollView
потребляет длинное нажатие и не переходит к UICollectionView
. Когда я поднимаю палец, вызывается метод didSelectItemAtIndexPath:
.
В моем UIScrollView
подклассе только настройки у меня есть следующий:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(nonnull UIGestureRecognizer *)otherGestureRecognizer {
// This line enables the swipe to delete in the Messaging VC.
return ([otherGestureRecognizer.view.superview isKindOfClass:[UITableView class]]);
}
Это было сделано для того, чтобы ячейки Swiping в моих UITableView
, что одна из страниц моего UIScrollView
. У меня нет проблем, и я попробовал несколько аналогичных проверок для UICollectionView
и UICollectionViewCell
, но еще не получил длинную печать для регистрации. Любые советы приветствуются.
Редактировать: Я добавил длинное нажатие на другое UICollectionView
, и оно функционально, но ячейка никогда не показывает выделенный/выбранный статус. Я думаю, это подсказка, почему я не могу заставить этот длинный жест прессы стрелять.