2017-09-23 7 views
2

2つのボタンと検索バーをナビゲーションコントローラに追加しようとしていますが、配置が正しくありません。 SearchBar、UIButtonのサイズを変更する、Yの位置を変更するなど、ほとんどすべてを試しましたが、うまくいきませんでした。どのようにこの問題を解決するためのアイデア? enter image description here 私は、iOS 11とXcode 9ナビゲーションコントローラのUISearchBarと2つのボタン

searchController = UISearchController(searchResultsController: nil) 
    searchController?.searchBar.frame = CGRect(x: 0, y: 0, width: 200, height: 30) 
    searchController?.delegate = self 
    searchController?.searchResultsUpdater = self 

    let refineButton = UIButton.init(type: UIButtonType.custom) 
    refineButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30) 
    refineButton.setImage(#imageLiteral(resourceName: "settings-button"), for: UIControlState.normal) 
    refineButton.widthAnchor.constraint(equalToConstant: 30).isActive = true 
    refineButton.heightAnchor.constraint(equalToConstant: 30).isActive = true 


    let refineItem = UIBarButtonItem(customView: refineButton) 


    navigationItem.leftBarButtonItem = refineItem 
    navigationItem.titleView = searchController?.searchBar 
    searchController?.searchBar.sizeToFit() 
+1

を私はこれが役立つかはわからないが、なぜ代わりに '' navigationItem.searchController = searchController'を使用しませんnavigationItem.titleView = searchController?.searchBar'です。もちろん、iOS 11でしか動作しません。 – rmaddy

+1

@rmaddy残念ながら、検索コントローラがボタンの下に移動するため、残念ながらそれは機能しません – Siyavash

答えて

0

を使用して確認してくださいしています:

override func viewWillLayoutSubviews() { 
    searchController?.searchBar.frame = CGRect(x: 0, y: 0, width: 300, height: 30) 
    searchController?.searchBar.sizeToFit() 
} 
関連する問題