2017-11-08 13 views
0

検索バーのテキストフィールドの背景色をカスタム色に設定しようとしています。私は無駄にここで答えを見て:UITextField UISearchBarの背景色iOS 10+

Cannot change search bar background color

は、検索バーが赤色のテキストフィールドを持っているかを参照してください?私はコードを守り、UISearchBarTextFieldオブジェクトが見つかったことを確認して、その背景色をUIColor.redに設定していますが、色は変わりません。

私はスーパービューのすべての背景色を助けてくれると期待していましたが、色を変えることができません。たぶん、いくつかの新しいトリックがあるか、誰かが何とか色を上書きするかもしれない何かに光を当てることができます。

extension UISearchBar { 
    var textField: UITextField? { 
     return subviews.first?.subviews.first(where: { $0.isKind(of: UITextField.self) }) as? UITextField 
    } 
} 

searchBar.textField?.backgroundColor = UIColor.red // <-- Not working 
let textFieldInsideUISearchBarLabel = searchBar.textField?.value(forKey: "placeholderLabel") as? UILabel 
textFieldInsideUISearchBarLabel?.textColor = UIColor.lightGray 

私はそれをしたいようにUITextFieldオブジェクト内のテキストだけではないのUITextFieldの背景色、ライトグレーに変更されることに注意してください。

答えて

0

答えを待ってから、私はいくつかの実験をすることにしました。新しいプロジェクトを作成し、検索バーをドラッグしてViewControllerに接続し、UISearchBar拡張を追加して、私のメインプロジェクトで行ったのとまったく同じ色を設定しました。

Voila!それは、主題のリンクされたトピックに示すように、背景色を必要に応じて設定します。

私はプロジェクトを並べて、それぞれにストーリーボードを開き、一度に1つずつsearchBarのプロパティを設定して、なぜバーが設定されていないのがわかるまで主なプロジェクト

私が試した最初のものは、検索スタイルでした。私のプロジェクトは「最小」に設定されています。私はテストプロジェクトで "Minimal"に変更し、色がもはや設定されていないことに直ちに気付きました。

したがって、メインプロジェクトのsearchBarの "Search Style"プロパティを "Default"に設定すると、その背景色を設定することができました。

私が背景色をカスタマイズしたい場合や、どうすればそれを動作させることができるのか、誰かが「Minimal」を使用することができない理由とコメントしていただければ大いに感謝します。