Я знаю, что этот вопрос задавался ранее, но мне еще предстоит найти верное решение. У меня есть UITableView
с UISearchBar
в качестве tableHeaderView.
Всякий раз, когда появляются кнопки области видимости, они закрывают первый ряд UITableView
.
Я пытался использовать UITableView.contentOffset
для смещения UITableView
на высоту кнопок контекста, и это работает до тех пор, пока пользователь не коснется UITableView
или не прокрутит его, после чего UITableView
возвращается к своему исходное смещение.
Лучшее, что я смог сделать, это установить UISearchBar
как отдельный элемент в представлении и просто динамически изменить его размер UITableView
, чтобы показать или скрыть его, когда пользователь нажимает кнопку поиска. Единственная проблема заключается в том, что анимации нет, поэтому переход резкий.
ОБНОВЛЕНИЕ: я решил проблему, внедрив UISearchDisplayController
, так как это было самое чистое и простое решение для работы. UISearchDisplayController
автоматически показывает / скрывает кнопки контекста и соответственно перемещает UITableView
вниз. Сначала я этого не делал, потому что хотел, чтобы UITableView
оставался видимым, а не был затемнен UISearchDisplayController
, однако я пришел к выводу, что затемнение не мешает какой-либо функциональности; пользователь не стал бы начинать поиск, если бы хотел продолжить смотреть на UITableView
, как это было.