web-dev-qa-db-ja.com

検索バーの背景色灰色ios7

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

これが画像です:

enter image description here

13
Freddy

これを試して:

if(IOS_7)
{
    self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
35
Quang Hà

Interface Builder(.xib)で「バーの色合い」を「クリアカラー」に設定できます。

enter image description here

コードで実行することもできます。

self.searchBar.barTintColor = [UIColor clearColor];
12
David Douglas

単色にするには、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;
6
Gabriel Cartier

Swift 4.2

この拡張機能を使用して、SearchBarのフォントと背景色を変更できます。

extension UISearchBar {

    var textField: UITextField? {
        let subViews = subviews.flatMap { $0.subviews }
        guard let tf = (subViews.filter { $0 is UITextField }).first as? UITextField else { return nil }
        return tf
    }

    func setTextColor(color: UIColor) {
         textField?.textColor = color
    }

    func setBackgroundColor(color: UIColor) {
         textField?.backgroundColor = color
    }
}
0
Get Schwifty