search栏点击后消失

我试图使用谷歌地图实现search附近的地方。 下面是我到目前为止所做的代码

override func viewDidLoad() { super.viewDidLoad() //Adding Mapview mapView = GMSMapView(frame: CGRectMake(0, 120, self.view.bounds.width, self.view.bounds.height - 120)) self.view.addSubview(mapView) mapView.mapType = kGMSTypeNormal locationManager.delegate = self locationManager.requestWhenInUseAuthorization() let resultTableView = UITableView(frame: CGRectMake(10, 100, 300, 60)) self.searchResultController = UITableViewController() self.searchResultController?.tableView = resultTableView self.searchResultController?.tableView.dataSource = self self.searchResultController?.tableView.delegate = self self.searchResultController?.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") self.searchController = UISearchController(searchResultsController: self.searchResultController) self.searchController?.searchResultsUpdater = self self.searchController?.hidesNavigationBarDuringPresentation = true self.searchController?.dimsBackgroundDuringPresentation = false self.searchController?.delegate = self self.searchController?.searchBar.frame = CGRectMake(0,70,self.view.bounds.width,40) self.searchController?.searchBar.placeholder = "Please choose a location" self.view.addSubview(self.searchController!.searchBar) self.definesPresentationContext = true } 

一切工作正常,除了search栏单击后消失。 但它的function。 在这里输入图像说明

我find了解决我的上述问题。

 func willPresentSearchController(searchController: UISearchController){ self.searchResultController?.tableView.addSubview(self.searchController!.searchBar) } 

在这里输入图像说明

希望它对别人有帮助!

尝试调用[[[self searchController] searchBar] sizeToFit]; 里面layoutSubviews方法。 它帮助了我。