3

境界線のない UISearchBar を追加しようとしていますが、単に機能していません。

これは私が持っているものです:

XIB ファイルに、UISearchBar を追加しました。スタイル = 黒透明。色合い = デフォルト。どのオプション (ブックマーク、キャンセル ボタン、スコープ バーなど) も選択されていません。背景 = デフォルト。Drawing = opaque (基本的に UISearchBar のデフォルト設定)。

UISearchBar - searchBar のプロパティがあります。実装ファイルでは、ビューが読み込まれると、次のようになります。

[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];

しかし、何らかの理由で、背景 (ボックスの周りの暗い境界線) は単純にうまくいきません。[[self.searchBar.subviews objectAtIndex:0] setAlpha:0] を試しましたが、それもまったく機能しません。

何か助けてください。

4

8 に答える 8

5

これは私のために働いた

for (UIView * view in [[[self.searchBar subviews] objectAtIndex:0] subviews])
{
    if (![view isKindOfClass:[UITextField class]])
    {
        view .alpha = 0;
    }
}
于 2014-02-17T17:44:42.170 に答える
4

これがコードです.....

for (id img in searchBar.subviews)
{       
     if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
     {     
            [img removeFromSuperview];    
     }
}

幸せなコーディング:)

于 2012-10-20T20:46:35.000 に答える
1

これを試して

 for (UIView * view in [mySearchBar subviews]) {
     if (![view isKindOfClass:[UITextField class]]) {
    view .alpha = 0;
     }
  }
于 2012-10-20T18:01:50.180 に答える
1

どうですか:

[self.searchBar setOpaque:NO];
于 2012-10-20T17:25:07.620 に答える
1
[[_searchBar.subviews objectAtIndex:0] removeFromSuperview];
_searchBar.backgroundColor = [UIColor clearColor];

これがあなたのために働くことを願っています、それは私のために働いています。

于 2012-10-20T17:27:29.213 に答える
1

8.0 以降を使用している場合、最善の解決策はUIAppearance、次の手順を実行してプロトコルを使用することです。

[[UISearchBar appearance] setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

以下を使用して、1 つの特定のインスタンスで実行することもできます。

[mySearchBar setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
于 2015-06-07T10:42:00.623 に答える
1

これは静的 UISearchBar でのみ機能し、検索 CancelButton を表示したい場合ではありません。この問題は 5.0 以上の ios を搭載したデバイスで発生します。そのためには、UiSearchBar の BackgroundView を変更/設定する必要があります。

于 2012-10-20T17:34:34.433 に答える