2014-12-27 2 views
6

Я добавил UITapGestureRecognizer в свой основной Content View в моем ViewController, чтобы отклонить мою клавиатуру при прослушивании содержимого.iOS: добавление UITapGestureRecognizer в перехват контейнера UICollectionView's didSelectItemAtIndexPath метод

Проблема в том, что у меня есть UICollectionView внутри моего содержимого, а установка UITapGestureRecognizer перехватывает краны моего UICollectionView.

Как разрешить краны UICollectionView, чтобы метод didSelectItemAtIndexPath снова срабатывал?

func setupGestureRecognizer() { 
    let dismissKeyboardTap = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
    contentView.addGestureRecognizer(dismissKeyboardTap) 
} 

func dismissKeyboard() { 
    contentView.endEditing(true) 
} 

ответ

15

Способом решения этой проблемы является добавление .cancelsTouchesInView = false к вашему UITapGestureRecognizer.

Это позволяет коснуться других видов, например, UITableViewCell.

func setupGestureRecognizer() { 
    let dismissKeyboardTap = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
    dismissKeyboardTap.cancelsTouchesInView = false 
    contentView.addGestureRecognizer(dismissKeyboardTap) 
} 

func dismissKeyboard() { 
    contentView.endEditing(true) 
} 
0

попробовать этот

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    [self.view endEditing:YES]; 
} 

и удалить tapGesture.

+0

Это останавливает перехват 'UICollectionView', но не отключает клавиатуру при нажатии в любом месте экрана. –

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