14

現在、ios7 が登場するまで問題なく動作していたアプリに取り組んでいます。以前は検索バーが透明で、ナビゲーション バーの青色の背景に溶け込んでいました。現在、ios7 で作業しているため、ナビゲーション バーは青色ですが、検索バーの背景は灰色になっています。青または透明にするにはどうすればよいですか?

ここに画像があります:

ここに画像の説明を入力

4

5 に答える 5

36

これを試して:

if(IOS_7)
{
    self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
于 2013-10-04T04:20:08.847 に答える
12

Interface Builder (.xib) で "Bar Tint" を "Clear Color" に設定できます。

ここに画像の説明を入力

コードでも実行できます。

self.searchBar.barTintColor = [UIColor clearColor];
于 2013-10-03T22:21:26.163 に答える
6

単色にするには、UISearchBarBackground ビューを削除するだけです。

検索バーを適切に消去するための再帰メソッドを作成しました。

- (void) removeUISearchBarBackgroundInViewHierarchy:(UIView *)view
{
    for (UIView *subview in [view subviews]) {
        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
            [subview removeFromSuperview];
            break; //To avoid an extra loop as there is only one UISearchBarBackground
        } else {
            [self removeUISearchBarBackgroundInViewHierarchy:subview];
        }
    }
}

検索バーをメソッドに送信し、後で色を変更するだけです。

[self removeUISearchBarBackgroundInViewHierarchy:self.searchDisplayController.searchBar];
self.searchDisplayController.searchBar.backgroundColor = yourUIColor;
于 2014-03-13T14:23:32.373 に答える
-1

**編集-これはiOS 7でうまくいきました

// Set the color to whatever blue color that is in your screenshot
self.searchBar.backgroundImage = [UIImage imageWithColor:[UIColor redColor] cornerRadius:5.0f];

すべての検索バーを特定の色にしたい場合は、次のようにします。

// Put this in your app delegate's didFinishLaunchingWithOptions method
// Whatever color you want for searchBarColor
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { // For iOS 7
    UIColor *searchBarColor = [UIColor blueColor];
    [[UISearchBar appearance] setBackgroundColor:searchBarColor];
}

その特定の検索バーの背景を色にしたいだけの場合:

// Set it in your viewDidLoad method of your controller
// Replace the yourSearchBar property with whatever you're doing to instantiate the search bar
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { // For iOS 7
{
    UIColor *searchBarColor = [UIColor blueColor];
    self.yourSearchBar.backgroundColor = searchBarColor;
}
于 2013-10-03T21:46:20.313 に答える