0

我在 Google Place AutoComplete 的导航栏中放置了一个搜索栏。当它出现时它显示得很好,但是当你点击它内部时,它会稍微向下移动并保持在那里,即使你点击取消,直到你将 titleView 设置为 nil 并再次返回,然后它会重置。这是我的 viewDidLoad 方法中调用的相关代码:

resultsViewController = GMSAutocompleteResultsViewController()
    resultsViewController?.delegate = self

    searchController = UISearchController(searchResultsController: resultsViewController)
    searchController?.searchResultsUpdater = resultsViewController
    searchController?.searchBar.sizeToFit()
    searchController?.hidesNavigationBarDuringPresentation = false
    definesPresentationContext = true
    navigationController?.navigationBar.isTranslucent = true
    searchController?.hidesNavigationBarDuringPresentation = false
    navigationItem.titleView = nil

然后当需要我这样设置它:

navigationItem.titleView = searchController?.searchBar

当搜索栏首次加载时 点击搜索栏后

4

1 回答 1

0

尝试这个:

    searchController.searchBar.frame = CGRect(center: CGPoint(x: 15,y: 10), size: CGSize(width: 30, height: 30))
    let vu = UIView(frame: CGRect(center: .zero, size: CGSize(width: self.view.frame.width - 10, height: 40)))
    
    vu.addSubview(searchController.searchBar)
    vu.backgroundColor = UIColor.clear
    
    navigationItem.titleView = vu

根据您的需要设置框架

于 2019-04-04T10:31:52.640 回答