可以从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];