Как я могу скрыть / показать панель поиска, когда пользователь прокручивает вверх / вниз? - PullRequest
0 голосов
/ 03 июля 2019

Я реализовал панель поиска в iOS 9 и прикрепил ее к заголовку моего табличного представления.Но я не хочу, чтобы он был виден при запуске приложения.Когда пользователь прокручивает вниз панель поиска должна появляться и исчезать, когда пользователь прокручивает вверх.К сожалению, я не могу прикрепить панель поиска к свойству navigationItem.searchController, потому что я нахожусь на iOS 9. Есть ли способ как-то добиться этого вида / поведения?Или, по крайней мере, скрыть / показать его, когда пользователь прокручивает вверх / вниз. Здесь - полный исходный код, если вам это нужно.Заранее спасибо!

searchController.searchBar.delegate = self

    navigationItem.title = navigationItem.title ?? ci("plan_p")

    tableView.rowHeight = 100.0
    tableView.tableHeaderView = searchController.searchBar

    guard let projectId = GlobalState.selectedProjectId, let byProject : Results<Structure> = self.by(projectId: projectId) else {
        return
    }

    if (navigationItem.title != nil) {
        searchController.searchBar.scopeButtonTitles = [String(format: "gesamte %@", ci("project_s")),  String(format: "in %@", navigationItem.title!)]

    }
    searchController.searchResultsUpdater = self
    searchController.obscuresBackgroundDuringPresentation = false
    searchController.searchBar.placeholder = "Suche nach Plan"
    definesPresentationContext = true

Панель поиска не должна отображаться при запуске приложения и скрываться / показываться при прокрутке пользователя вверх / вниз

1 Ответ

0 голосов
/ 03 июля 2019

используйте UIScrollViewDelegate для проверки прокрутки табличного представления.

var position : CGFloat = 0

// this delegate is called when the scrollView (i.e your UITableView) will start scrolling
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    self. position = scrollView.contentOffset.y
}

// while scrolling this delegate is being called so you may now check which direction your scrollView is being scrolled to
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if (self. position < scrollView.contentOffset.y) {
        // table scroll up and you can hide your search bar
        print("move up")
    } else if (self. position > scrollView.contentOffset.y) {
        // table scroll down and you can show your search bar
        print("move down")
    } else {
        // do any thing when stop scrolling
        print("didnt move")

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