2016-03-22 5 views
6

У меня есть проблема с UISearchBar программными добавленными Внутри UIView (на одном из дочернего вида на TabBarController):UISearchController: панель поиска изначально слишком широк

Когда экран сначала загружаются, панель поиска слишком чтобы полностью вписаться в представление. Однако, когда вы нажимаете внутрь, а затем нажимаете кнопку Cancel, панель поиска изменяется так, что она хорошо вписывается в UIView.

Я загрузил образец проекта на GitHub - неправильное поведение можно наблюдать на второй вкладке в классе BlueViewController. Я уже много пробовал, так как вы, вероятно, видите в коде и просматриваете самые популярные ответы StackOverflow, но никто из них не исправил эту проблему для меня до сих пор.

Вот ссылка на проект: https://github.com/asia-t/tabbartest

Было бы здорово, если бы кто-то может пролить некоторый свет на то, что может быть там происходит.

enter image description here

ответ

7

можно реализовать следующий способ исправить фрейм SearchBar в:

override func viewDidLayoutSubviews() { 
    var searchBarFrame = searchController.searchBar.frame 
    searchBarFrame.size.width = vanillaSearchBar.frame.size.width 
    searchController.searchBar.frame = searchBarFrame 
} 
+0

Aha! Это исправляло это :-) Я пробовал аналогичную вещь, но не в том месте - я делал это в 'viewDidLoad', где это фактически делало вещи немного хуже. Это имеет смысл - спасибо! –

Смежные вопросы