55

如何更改iOS7中UISearchBar的背景顏色?如何更改iOS7中UISearchBar的背景顏色

enter image description here

不是灰色的,我想改變顏色像我UINavigationBar的

,如果我使用此代碼,這是什麼出來

searchBar.backgroundColor = [UIColor redColor]; 

enter image description here

那不是紅顏色!!! 與導航欄的背景顏色完全相同的情況。

+0

這只是我或我看不到你的照片? –

回答

169

需要使用:

searchBar.barTintColor = [UIColor redColor]; 

enter image description here

所有的感謝!

+2

這是一種刪除搜索欄中透明度的方法嗎?因爲顏色不是真的紅的! –

+5

@AladdinGallas你只需將UISearchBar的半透明屬性設置爲NO,如下所示:'[searchbar setTranslucent:NO];' – Pavan

+0

我想在此欄中添加圓角?我怎樣才能做到這一點? – Vishnu

2

如果在MainStoryBoard中定義了UISearchBar,只需單擊該UISearchBar並查看您可以在右側處理的選項。 如果你點擊第四個選項卡(看起來像一個盾牌),那麼你有一個Bar Tint選項。在那裏你可以選擇你想要的UISearchBar顏色。

如果不是這樣,我想編程,你可以做這樣的事情:

UISearchBar* sb =[[UISearchBar alloc] init]; 
    sb.backgroundColor=[UIColor redColor]; 

我希望這有助於!

+0

我更新了我的帖子 –

6

它是不是真的爲我工作,或有時,如果你也試試這個

for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews]){ 
       if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"]) 
        view.alpha = 0; 

      } 
+1

if子句可以簡單地爲'if([view isKindOfClass:UISearchBarBackground)''。 – franklsf95

+0

@ franklsf95這不會起作用,因爲它是一個無證類。 – jbouaziz

+0

@ chings228這很酷和smartass解決方案! –

45

設置背景圖片的清晰的圖像,你是好去。這也是pre-ios 7兼容的。

searchBar.backgroundImage = [[UIImage alloc] init] 
searchBar.backgroundColor = [UIColor redColor]; 
+2

這是一個非常好的答案使用clearColor如果你想在textField中使用白色的最小設計 – StackRunner

+0

男人花了我整整一個小時才找到你的高明解決方案。謝謝! – Skoua

+0

這就像一個魅力。謝謝! – Mak13

23

如果上述解決方案似乎並不那麼努力確保您所設置的搜索欄樣式最小

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal]; 

而對於簡單的搜索欄

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal]; 

搜索欄樣式也可以從界面生成器設置爲最小