可以从UISearchBar中删除背景或边框吗?

我想得到这样的东西:

在这里输入图像说明

但我无法删除原始背景(我正在使用iOS5)。 不过,苹果似乎做到了:

在这里输入图像说明

我怎样才能创造我想要的? 或者,没有select,我唯一的select是自定义一个UITextField?

感谢您的build议和想法!

编辑:第一次回复后,这是我得到:

在这里输入图像说明

有没有人如何删除白色内部背景,而不使所有组件半透明改变其alpha值? 顺便说一句,我可以改变黑色的白色?

试试这个代码,它为我工作

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

在上面的代码中,yourSearchBar是您要从中删除背景的search栏,for循环正在searchUISearchBar的背景图像

你应该真的使用外观协议。 您可以将其更改为UISearchBar的单个实例,

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

或者如果你在不同的场景中有多个search栏,这将会为每个实例提供主题(但是在AppDelegate中称之为合理的地方,以确保在你看到它们之前所有的栏都正确设置。

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

更新:好的,要更改search栏的背景,您应该使用以下选项之一,

searchBar的单个实例:

 [searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal]; 

UISearchBars的所有实例:

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

希望这可以帮助。

在iOS 7中,您可以设置:

 searchBar.barTintColor = [UIColor clearColor];