UISearchController的searchBar不会填满整个宽度
编辑:我正在使用Autolayout。
我有一个问题,用UISearchController的searchBar填充我的屏幕的整个宽度。 我的设置是这样的:
- 我有一个UIViewController。 在里面,我把所有的元素分开。 有一个UITableView显示结果。
- 由于我在search条重叠状态栏时遇到了问题,我创build了一个普通的UIView,它有一个约束条件,使它位于状态栏的下方,并填充UIViewController的全部宽度。 这是我在这里看到无数次的方法。
- 最后,我创buildUISearchController并将其添加为“wrapperView”的子视图
结果如下:
蓝色只能看到容器视图的扩展位置
对我来说,searchBar要么不能正确地填充容器,要么没有正确居中,因为左边的边看起来不像另一边那么宽。
而且,当search框处于活动状态时,所有内容都会正常显示,如下所示:
表格也显示正常
这里是我做我的设置的代码:
//Mark: - Outlets @IBOutlet weak var wrapperView: UIView! @IBOutlet weak var tableView: UITableView! //Mark: - Properties let searchController = UISearchController(searchResultsController: nil) override func viewDidLoad() { /*! Sets the values of the searchController and it's behaviour */ searchController.searchResultsUpdater = self searchController.dimsBackgroundDuringPresentation = false searchController.searchBar.delegate = self /*! Sets the values and behaviours of the tableView */ tableView.delegate = self tableView.dataSource = self tableView.hidden = true definesPresentationContext = true searchController.searchBar.sizeToFit() searchController.searchBar.frame.size.width = self.view.frame.size.width }
另外,我的search逻辑工作正常。
显然只有模拟器严重地显示search栏。 我不知道这是一个模拟器的错误,但在设备上,它工作正常! 我将会把这个答案标记为正确答案,希望这个答案能够成为别人的一个很好的参考! 干杯!