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];
}
}