首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GooglePlacesAutocomplete在活动时向上移动搜索栏

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

Stack Overflow用户
提问于 2017-08-31 09:49:36
回答 1查看 458关注 0票数 2

目前,我遵循了这些步骤,用Google Place实现了一个自动完成搜索栏。

control

到目前为止,它还不错,但是当我点击搜索栏时,它会向下移动,这就是我不想要的。

发自:

到(单击时):

我的当前代码与本教程中的代码完全相同(我也在它之后尝试了错误修复,不起作用)

代码语言:javascript
复制
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
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-02 09:16:44

嗯,我也遇到了同样的问题,我通过使用下面的代码行使它正确地工作:

代码语言:javascript
复制
definesPresentationContext = false

我对它进行了大量的测试,它对我来说非常有效。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45978407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档