2012-06-07 10 views
5

私はこのような何かを取得したいと思います:UISearchBarから背景や枠線を削除できますか?

enter image description here

をしかし、私は(私はiOS5をを使用​​しています)元の背景を削除することができませんでした。 はしかし、Appleがそれをやったようです:

enter image description here

は、どのように私は私が欲しいものを作成することができますか? または、選択肢がなく、UITextFieldをカスタマイズする唯一の方法はありますか?

提案とアイデアをお寄せいただきありがとうございます。

EDITは:最初の応答の後、これは私が得たものである:

enter image description here

誰がどのように私はそのアルファ値を変更し、すべてのコンポーネント半透明を加えずに、白の内側の背景を削除することができますか?ところで、私は黒色で白色を変更できますか?

答えて

7

それはあなたが背景を削除する検索バーで、forループ そしてUISearchBar

の背景画像を探している上記のコードyourSearchBarでは私のため

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

を働いていた、このコードを試してみてください

+0

感謝を。昨日私は試して働いていませんでしたが、今日は働いています。白い背景をどうやって取り除くことができますか?この情報で質問を編集しました。 – Ricardo

+1

完全に動作するようにこの行が欠落しています:[[[searchBar subviews] objectAtIndex:0] setHidden:YES];下のHassan Shahzadから。 – David

+0

驚くべき答えが私の人生を救った –

6

実際に外観プロトコルを使用する必要があります。あなたは

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"]; 
[searchBar setBackgroundImage:searchBg]; 

か、この意志のテーマすべてのインスタンスを異なるシーン間で複数の検索バーを持っている(ただし、バーを確実にするためにどこかに賢明AppDelegateのようにそれを呼び出すすべてのであれば、UISearchBarの単一のインスタンスのためにそれを変更しますか。正しくセットアップあなたがそれらのいずれかを見る前に

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"]; 
[[UISearchBar appearance] setBackgroundImage:searchBg]; 

更新: OK、あなたは次のいずれかを使用する必要があり、検索バーの背景を変更するには、の

シングルインスタンス検索バー:

[searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

UISearchBarsのすべてのインスタンス:

[[UISearchBar appearance] setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

は、この情報がお役に立てば幸いです。 iOSの7で

1

はあなただけ設定することができます。返信用

searchBar.barTintColor = [UIColor clearColor]; 
関連する問題