2016-07-13 2 views
0

Я добавил 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, и оно функционально, но ячейка никогда не показывает выделенный/выбранный статус. Я думаю, это подсказка, почему я не могу заставить этот длинный жест прессы стрелять.

ответ

0

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

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