GooglePlacesAutocomplete 在活动时向上移动搜索栏

GooglePlacesAutocomplete moves searchbar up when active

目前,我按照这些步骤实现了带有 Google 个地点的自动完成搜索栏。

https://developers.google.com/places/ios-api/autocomplete#add_an_autocomplete_ui_control

到目前为止一切顺利,它可以正常工作,但是当我点击搜索栏时它会向下移动,这是我不想要的。

来自:

收件人(点击后):

我现在的代码和教程中的完全一样(我也试过之后的错误修复,没有用)

var resultsViewController: GMSAutocompleteResultsViewController?
    var searchController: UISearchController?
    var resultView: UITextView?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "Event-Filter";

        resultsViewController = GMSAutocompleteResultsViewController()
        resultsViewController?.delegate = self

        searchController = UISearchController(searchResultsController: resultsViewController)
        searchController?.searchResultsUpdater = resultsViewController

        let subView = UIView(frame: CGRect(x: 0, y: 0.0, width: self.view.frame.width, height: 45.0))

        subView.addSubview((searchController?.searchBar)!)
        view.addSubview(subView)
        searchController?.searchBar.sizeToFit()
        searchController?.searchBar.placeholder = "Enter a specific place!";

        navigationController?.navigationBar.isTranslucent = false
        searchController?.hidesNavigationBarDuringPresentation = false

        // When UISearchController presents the results view, present it in
        // this view controller, not one further up the chain.
        definesPresentationContext = true
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //Handle User Selection

    func resultsController(_ resultsController: GMSAutocompleteResultsViewController, didAutocompleteWith place: GMSPlace) {
        searchController?.isActive = false
        searchController?.searchBar.text = place.formattedAddress;
        print("Place name: \(place.name)")
        print("Place address: \(place.formattedAddress ?? "not found")")
        print("Place lat:" + String(place.coordinate.latitude))

    }

    func resultsController(_ resultsController: GMSAutocompleteResultsViewController,
                           didFailAutocompleteWithError error: Error){
        let backend = BackendService()
        backend.alert(view: self, message: error.localizedDescription, title: "Something went wrong!")
    }

    // Turn the network activity indicator on and off again.
    func didRequestAutocompletePredictions(forResultsController resultsController: GMSAutocompleteResultsViewController) {
        UIApplication.shared.isNetworkActivityIndicatorVisible = true
    }

    func didUpdateAutocompletePredictions(forResultsController resultsController: GMSAutocompleteResultsViewController) {
        UIApplication.shared.isNetworkActivityIndicatorVisible = false
    }

好吧,我遇到了同样的问题,我通过使用以下代码行使其正常工作:

definesPresentationContext = false

我对它进行了很多测试,它对我来说效果很好。