Измените позицию UITableView, если щелкнуть UISearchBar: [using ModernSearchBar] - PullRequest
0 голосов
/ 24 мая 2018

Отказ от ответственности: я довольно новичок в Swift и пришел из не-разработчика - так что терпите меня, пока я объясняю проблему.Я использую Swift 4, Xcode 9

. Мне нужна была функция автоматического предложения для UISearchBar, которую я использую в своем приложении, для чего я использовал библиотеку ModernSearchBar .Он работал нормально для меня, но недавно я отредактировал свой код UISearchBar, чтобы он переместился в верхнюю часть страницы, и пользователям стала доступна большая область для просмотра предложений.Но в настоящее время я сталкиваюсь с этой проблемой - поэтому, пока UISearchBar идет вверх, как и ожидалось, список предложений этого не делает.Я знаю, что эта проблема очень специфична для этой библиотеки, но я был бы очень признателен, если бы кто-то указал мне правильное направление в этом вопросе.

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

1 Ответ

0 голосов
/ 24 мая 2018

Итак, было найдено относительно простое решение - файл ModernSearchBar.swift в библиотеке имеет функцию configureViews(), которая устанавливает атрибуты UITableView (это список предложений).Я отредактировал функцию searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) и добавил к ней эту строку if self.suggestionsView.frame.height == 0.0 { self.configureViews() }.Это сработало, т. Е. Представление списка предложений также было обновлено до верхней позиции UISearchBar, как и ожидалось.И это также не обновляет позицию несколько раз из-за ограничения высоты кадра.

Обновление: Другая проблема, с которой я столкнулся, заключалась в том, что, если бы я искал слово и вернулся на предыдущую страницу, представление результатов поиска каждый раз немного увеличивалось и начинало покрывать UISearchBar раздел, а затем вышел из поля зрения.Проблема была решена после того, как я удалил код для обновления размера списка предложений в функции keyboardWillShow(notification: NSNotification) в том же файле.Не уверен в причине этого, но теперь он отлично работает на телефоне и на симуляторе.

...