2014-01-21 58 views
0

我已經搜索了很多,但找不到一個很好的答案。如何自定義iOS7中的UISearchBar顏色?

我想更改內部圓角視圖的backgroundColor。

就像在Tweetbot上的搜索點擊它從灰色變爲藍色。

據我所知,我可能需要迭代子視圖,但我不知道如何得到正確的對象。 (爲的backgroundColor它不是_searchLabel)

該元素的默認對比度是如此糟糕,這甚至不是滑稽:(

+2

http://stackoverflow.com/questions/13817330 /如何更改內部背景顏色的uisearchbar組件上的ios?rq = 1 這是否有幫助? – 4GetFullOf

+0

nope :(我不想添加一個背景圖片,只是改變內部圓形視圖的顏色 – 1b0t

+0

我的意思是解決方案2下面的答案你的提及 – 4GetFullOf

回答

-1

使用此代碼。

_searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.contentView.bounds.size.width, 44.0f)]; 
_searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
_searchBar.delegate   = self; 
[self.view addSubView:_searchBar]; 

UITextField *txfSearchField = [_searchBar valueForKey:@"_searchField"]; 
txfSearchField.backgroundColor = [UIColor redColor]; 
+0

這會導致應用商店拒絕。 – STANGMMX

0

如果你還在尋找一個更好的答案,我只是碰到這個線程迷迷糊糊地發現了一個很好的解決方案:UISearchBar text color change in iOS 7

如果你看一下通過桑迪普 - Systematix給出的答案(不接受的答案,但答案正下方),他提到了一個非常乾淨的方式修改子視圖中的任何類用這種方法:

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setTextColor:[UIColor blueColor]]; 

您可以在Apple的文檔中閱讀更多關於這一點:https://developer.apple.com/library/ios/documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html

這就是說,這裏就是你需要改變的UITextField的的UISearchBar內的白色,圓形的背景是什麼:

[[UITextField appearanceWhenContainedIn:[UISearchBar class], nil] setBackgroundColor:[UIColor redColor]]; 

現在,如果你需要創建不同的風格不同的UISearchBars,您只需創建的UISearchBar的一個子類,你最終的東西是這樣的:

[[UITextField appearanceWhenContainedIn:[MyCustomSearchBar class], nil] setBackgroundColor:[UIColor redColor]];