2016-02-09 18 views
11

PFQueryTableViewControllerの先頭にUISearchBarを追加しました。私はsearchBarの色を自分のアプリの色に変更しましたが、これを行う際に、同じ色の右に 'Cancel'ボタンの色を変更したようです。理想的には、色を白にします。SwiftでUISearchBarの[キャンセル]ボタンの色を変更する方法

この画像は、それが現在どのように見えるかを示しています。

それは「キャンセル」ボタンがないように見えますが、そこにある、検索バーとしてそのちょうど同じ色(あなたはまだそれを押すことができますなど)

この「キャンセル」ボタンの色を白に変更する方法はありますか?私が試したことは何の違いもないようです。

私はUISearchBarこの色を作るために使用したコードは次のとおりです。

UISearchBar.appearance().barTintColor = UIColor(hue: 359/360, saturation: 67/100, brightness: 71/100, alpha: 1) 
UISearchBar.appearance().tintColor = UIColor(hue: 359/360, saturation: 67/100, brightness: 71/100, alpha: 1) 

、私はこれらを設定したストーリーボードで:

enter image description here

そして最後に、プレースホルダを作成します、および検索バーの中のテキストの白、私は使用しました:

​​3210

助けてくれてありがとう! :)

+0

前にキャンセルボタンの色は何ですか? – cbay

+0

@cbay明るい/ぼんやりした灰色のようなデフォルトの色でした – Nick89

+0

私は検索バーで作業しませんでした(そして私はすべてのUIのことをプログラムで行います)が、キャンセルボタンのコードはどこにありますか?あなたはただ色をcancelButton.backgroundColor = UIColor.greyColor()のように変えることができます。 – cbay

答えて

20

は周りを見たが、これは私が必要なものを達成するための最良の方法と思われた:。

let cancelButtonAttributes: NSDictionary = [NSForegroundColorAttributeName: UIColor.whiteColor()] 
UIBarButtonItem.appearance().setTitleTextAttributes(cancelButtonAttributes as? [String : AnyObject], forState: UIControlState.Normal) 

UIColor.whiteColor()を希望の色に変更してください。 Nick89のコード上スウィフト2

+0

** UISearchController **を使用している場合は、** willPresentSearchController:**または** didPresentSearchController:** – LightNight

+0

にこのコードを挿入する必要があります。 –

+1

@ArthurGarzaキャンセルボタンにのみ反映する – Nick89

6

あなたは UISearchBar.appearance()しようとしなかったtintColor = UIColor.whiteColor()

+0

私ははい、それはテキストの色を変更しません。これは、ボタン領域にかすかな輪郭を追加するだけです。 – Nick89

+0

アップロードできるサンプルアプリがありますか? –

+0

完璧です。ありがとう – Mehul

5

ベースでのiOS 9でテストされ、私はUISearchBarのみの代わりに、すべてのUIBarButtonに変更したいので、私はUIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self])

のように使用していスウィフト3.1

let cancelButtonAttributes: [String: AnyObject] = [NSForegroundColorAttributeName: UIColor.white] 

UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes(cancelButtonAttributes, for: .normal) 

のためにそのように変更しました

3

キャンセルボタンの色を変更するためのコードで使用この一行を:

スウィフト4.0とのXcode 9.2でチェック
UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes([NSAttributedStringKey(rawValue: NSAttributedStringKey.foregroundColor.rawValue): UIColor.white], for: .normal) 
関連する問題