2016-12-26 8 views
0

私には問題があります。私はUITableViewを持っていて、tableViewのヘッダーはsearchControllerで、赤色のビューが1つあります(このビューの内部はアイコンになります)。 enter image description here検索バーの解除

検索の開始後にキャンセルボタンが表示されます。 enter image description here

そして、キャンセルボタンを押して検索バーのサイズをフルスクリーンサイズに変更すると、赤い表示が消えます。 enter image description here

この問題を解決するにはどうすればよいですか?

lazy var searchController = UISearchController(searchResultsController: nil).then { 
    //return UISearchController().then { 
     $0.dimsBackgroundDuringPresentation = false 
     $0.searchBar.placeholder = "Искать по имени" 
     $0.searchBar.tintColor = .black 
     $0.searchBar.searchBarStyle = .minimal 
     $0.searchBar.backgroundColor = .white 
     UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSFontAttributeName : UIFont.appleSystemRegular(15)], for: .normal) 
     $0.searchBar.setValue("Отмена", forKey:"_cancelButtonText") 

    } 

lazy var contentView: UIView = { 
    let view = UIView() 
    view.backgroundColor = .red 
    return view 
}() 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    setupViews() 
    setupConstrains() 
} 

required init?(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

fileprivate func setupViews() { 
    addSubview(contentView) 
    addSubview(searchController.searchBar) 
} 

func setupConstrains() { 
    searchController.searchBar.frame = CGRect(x: 0, y: 0, width: self.frame.width - 80, height: 44) 
    contentView.frame = CGRect(x: self.frame.width - 65, y: 0, width: 50, height: 44) 
} 
+0

searchBarとredViewを整列するために制約を使用しましたか? –

+0

いいえ、今すぐお試しください –

+0

UITableViewHeaderFooterViewを使用して、制約を正しく使用できます。 –

答えて

0

削除searchcontrollerのみ検索バーのデリゲートを検索しよう:

は、ここに私のheaderViewクラスです。

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { 

} 
関連する問題