2015-08-30 3 views
2

Прошел быстрый учебник с поисковыми барами и понял, что я могу использовать searchBar.sizeToFit() для автоматической настройки строки поиска, однако правый конец строки поиска по-прежнему выходит за пределы экрана.Ширина полосы поиска UISearchController не меняется

class MainViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchResultsUpdating, UISearchBarDelegate { 

    var searchController = UISearchController(searchResultsController: nil) 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     searchController.searchBar.delegate = self 
     searchController.searchResultsUpdater = self 
     searchController.dimsBackgroundDuringPresentation = false 
     searchController.searchBar.sizeToFit() 
     tableView.tableHeaderView = searchController.searchBar 
     definesPresentationContext = true 
    }} 

Я попытался вручную установить рамки с чем-то вроде searchController.searchBar.frame = CGRectMake(0, 0, 200, 200) но ширина осталась от экрана. Строка поиска не существует в раскадровке, однако tableView делает.

+0

Вы используете автозапуск? –

+0

Почему в раскадровке нет строки поиска? – NRitH

ответ

2

Если вы используете автоматический макет, используйте вместо него ограничения ширины переднего и заднего края.

+0

Не могли бы вы привести пример? – johnsona

1

Просто нажмите на ссылку Pin, указанную ниже, и выберите верхние, ведущие (левые) и конечные (правые) ограничения, затем нажмите Добавить 3 ограничения. Убедитесь, что флажок «Ограничение на пометку» не установлен. Если ограничения удовлетворяют, предупреждения не будет. Попробуйте изменить цвет фона вашей панели поиска, чтобы увидеть его положение на экране.

+0

Если вы все еще находите проблему, пришлите мне почтовый файл вашего приложения/проекта. –

+0

Строка поиска не существует на раскадровке. Я попытаюсь настроить автоматическое отключение программным способом. – johnsona

1

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

0

Если настройка ограничений автоматической компоновки не устраняет проблему, попробуйте позвонить searchController.searchBar.sizeToFit() в viewWillLayoutSubviews(), а не viewDidLoad(). Это может помочь, если панель поиска содержится в представлении, отличном от представления заголовка таблицы.

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