LoginSignup
8
8

More than 5 years have passed since last update.

UISearchBar カスタマイズ

Last updated at Posted at 2012-10-10

UISearchBar(NaviBar っぽい背景の検索フィールド)を OS X みたいに自由に使いたいけど、iOS はNaviBar を想定しているのか枠付きであり、邪魔に思った。自作するのもめんどくさい、なんとかならんか。

あまり良いやり方ではない が、サブビューを掘っていけば背景となっている View にアクセスできるので、透過なり背景画像なりを変えてやれば良い。

UISearchBar を xib で配置した場合、スコープバー(検索オプション用の SegmentedControl)が勝手に裏側に用意されていることがあるので注意。

ObjC
for (UIView *subview in searchBar.subviews)
{
    // UISearchBar の背景 View "UISearchBarBackground" を特定
    // UISearchBarBackground は UIImageView のサブクラスらしい
    if ([subview isKindOfClass:[UIImageView class]])
    {
        // UIImage を渡せばそれが背景になる. nil なら背景が消える
        [(UIImageView*)subview setImage:nil];
    }

    // テキストフィールドを特定、カスタマイズ
    // UISearchBarTextField は UITextField のサブクラスらしい
    if ([subview isKindOfClass:[UITextField class]])
    {
        // UIImage を渡せばそれが検索フィールドの背景になる. nil なら背景が消える
        [(UITextField*)subview setBackground:nil];
    }
}
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8