Предотвратить отставку панели поиска, будучи первым респондентом SWIFT 4.2 - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть строка поиска в заголовке представления моей коллекции, и я хочу иметь возможность фильтровать содержимое как типы пользователей. Проблема заключается в том, что каждый раз, когда я перезагружаю представление коллекции в событии textDidChange панели поиска, представление коллекции становится первым респондентом, а панель поиска подает в отставку, таким образом скрывая клавиатуру.

Я проверил все ответы в;

UICollectionView reloadData подает в отставку первый респондент в заголовке раздела

Как отфильтровать UICollectionView и сохранить клавиатуру вверх?

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

Заранее спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

Я не смог найти правильного решения для этой проблемы, поэтому я добавил свою панель поиска в мой основной вид и синхронизировал ее значение высоты с событием didscroll моих представлений коллекции.

Вот фрагмент кода, если кто-то интересно.

    let offset = self.collectionView.contentOffset
    let y = offset.y

    if lastContentOffset > scrollView.contentOffset.y && lastContentOffset < scrollView.contentSize.height - scrollView.frame.height {
        // move up
        if self.cst_searchBarHeight.constant == 0 && y <= 0{
            self.cst_searchBarHeight.constant = self.searchBarHeight
            UIView.animate(withDuration: 0.4, delay: 0.0, options: [.curveEaseInOut], animations: {
                self.view.layoutIfNeeded()
            }, completion: nil)
        }

    } else if lastContentOffset < scrollView.contentOffset.y && scrollView.contentOffset.y > 0 {
        // move down
        if self.cst_searchBarHeight.constant != 0{
            self.cst_searchBarHeight.constant = 0
            UIView.animate(withDuration: 0.4, delay: 0.0, options: [.curveEaseInOut], animations: {
                self.view.layoutIfNeeded()
            }, completion: nil)
        }
    }
    // update the new position acquired
    lastContentOffset = scrollView.contentOffset.y
}

У меня есть идея из приведенного ниже ответа, который определяет направление прокрутки представления коллекции Как определить направление прокрутки из UICollectionView?

...