UICollectionView в UIScrollView: длительное нажатие

Я добавил UILongPressGestureRecognizer к моему UICollectionView это находится в подклассе UIScrollView, (The UIScrollView постранично, так что есть 3 горизонтально сложены UIViewControllerс).

Мой код для добавления 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]]);
}

Это было сделано для того, чтобы в моем UITableView, которая является одной из страниц моего UIScrollView, Смахивание работает без проблем, и я пробовал ряд аналогичных проверок для UICollectionView а также UICollectionViewCell здесь, но еще не получил долгое нажатие, чтобы зарегистрироваться. Любой совет приветствуется.

Изменить: я добавил долгое нажатие на другой UICollectionView и это функционально, но ячейка никогда не показывает выделенный / выбранный статус. Я предполагаю, что это ключ к пониманию того, почему я не могу заставить этот длинный жест прессы сработать.

1 ответ

Моя проблема заключалась в том, что я добавлял распознаватель жестов в -init метод. Это не сработало. Просто переместите код в -viewDidLoad исправил проблему.

Другие вопросы по тегам