IOS: я пытаюсь скрыть панель поиска поверх моего tableView до прокрутки

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

Не могли бы вы помочь мне сделать это? Спасибо


person viktor    schedule 03.09.2015    source источник
comment
скрыть панель поиска по умолчанию, а при прокрутке сделать видимой панель поиска, используя делегатов полосы прокрутки. делегировать действие при прокрутке таблицы"> stackoverflow.com/questions/3520901/   -  person johny kumar    schedule 03.09.2015
comment
спасибо за вклад. Подскажите пожалуйста, как скрыть панель поиска по умолчанию?   -  person viktor    schedule 03.09.2015
comment
searchbar.hidden = YES в viewDidLoad или viewWillAppear   -  person johny kumar    schedule 03.09.2015


Ответы (1)


Я предположил, что вы могли бы реализовать свои требования, написав этот код:

    var contentOffset = tableView.contentOffset
    contentOffset.y += searchDisplayController!.searchBar.frame.size.height
    tableView.contentOffset = contentOffset

PS: вам нужно изменить имена переменных.

Тест успешно выполнен на: xcode7 Swift 2.0 ios8.4

person KangKai    schedule 03.09.2015
comment
Этот не работает. Я внедрил код в свой viewDidLoad, и ничего не произошло. - person viktor; 03.09.2015
comment
да, у меня есть первое предупреждение о том, что searchDisplayController! не рекомендуется. А потом он вылетает с ошибкой: неожиданно найдено nil при распаковке необязательного значения. - person viktor; 03.09.2015
comment
и, кстати, я использую обычную панель поиска, а не панель поиска и контроллер отображения поиска. Как вы думаете, может, мне стоит переключиться? - person viktor; 03.09.2015
comment
Я думаю, вам нужна панель поиска, перетащите ее в верхнюю часть вашего tableView на раскадровке, затем вы можете реализовать код в viewDidLoad, я делаю приложение TODO, я реализовал требование этим кодом, это работает - person KangKai; 03.09.2015
comment
это то, что я сделал. Я буду продолжать копаться в том, почему это не так. бесконечно благодарен. Я вернусь к вам по этому поводу. - person viktor; 03.09.2015
comment
Извините, я ошибаюсь ... элемент, который вам нужно перетащить, - это панель поиска и контроллер дисплея поиска. Я проверяю свой код .. это панель поиска и контроллер отображения поиска (у меня была плохая память) - person KangKai; 03.09.2015
comment
Привет, KangKai, я пробовал все это (даже снял флажок «Настроить вставку прокрутки»), но contentOffset по-прежнему не отвечает. Возможно, есть способ его инициализировать? Я вставил ваш код, и даже если я изменю переменные, он ничего не сделает. Есть ли еще один кусок кода, который нужно добавить в начале? Спасибо бесконечно - person viktor; 04.09.2015