UISearchController 搜索栏宽度不变

nhy*_*yne 5 ios swift ios8

浏览了一个带有搜索栏的快速教程,并认为我可以searchBar.sizeToFit()用来自动调整搜索栏的大小,但是搜索栏的右端仍然延伸到屏幕之外。

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
    }}
Run Code Online (Sandbox Code Playgroud)

我试图用类似的东西手动设置框架,searchController.searchBar.frame = CGRectMake(0, 0, 200, 200)但宽度仍然不在屏幕上。故事板中不存在搜索栏,但 tableView 存在。

小智 1

如果您使用自动布局,则使用前缘和后缘而不是宽度约束。