Разрешить выбор ячейки, пока активен UISearchController - PullRequest
0 голосов
/ 02 октября 2018

У меня есть UICollectionViewController с UISearchController, встроенным в родительскую панель навигации UINavigationController.Я использую ячейки, которые являются пользовательским подклассом UICollectionViewCell, содержащим один UIImageView.

Однако во время поиска я не могу выбрать ячейки, которые были найдены при поиске.Выбор / нажатие ячеек отлично работает, когда контроллер поиска не активен, и я уже безуспешно попытался этот ответ.

Вот мой код настройки поиска:

searchController.searchResultsUpdater = self
searchController.definesPresentationContext = true
searchController.searchBar.keyboardAppearance = .default
searchController.obscuresBackgroundDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = false

navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false

Буду признателен за помощь в решении этой проблемы:)

1 Ответ

0 голосов
/ 15 октября 2018

Понял это после того, как немного поигрался с UICollectionView.

Я переопределил touchesBegan, как показано ниже:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    guard !searchController.isActive else { return }
    super.touchesBegan(touches, with: event)
    UIView.animate(withDuration: 0.1) { () -> Void in
        let shrinkTransform = CGAffineTransform.init(scaleX: 0.9, y: 0.9)
        self.transform = shrinkTransform
    }
}

Проблема заключалась в том, что я проверялбыл ли контроллер поиска активным ДО вызова super.touchesBegan, который блокировал касания всякий раз, когда контроллер поиска был активен.

Перемещение оператора защиты непосредственно под вызовом super.touchesBegan устранило мою проблему.

Надеюсь, это поможет любому, кто столкнется с подобной проблемой!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...