我想得到这样的东西:
但是我无法删除原始背景(我正在使用iOS5)。 然而,苹果似乎做到了这一点:
我如何创造我想要的东西? 或者,没有选择,我唯一的选择是自定义UITextField?
感谢您的建议和想法!
编辑:第一次回复后,这就是我得到的:
有没有人如何在不使所有组件半透明改变其alpha值的情况下删除白色内部背景?顺便说一下,我可以用黑色改变白色吗?
答案 0 :(得分:7)
试试这段代码,它对我有用
for (id img in yourSearchBar.subviews) {
if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[img removeFromSuperview];
}
}
在上面的代码中,yourSearchBar是您要从中删除背景的搜索栏, 而for循环正在搜索UISearchBar
的背景图像答案 1 :(得分:6)
你应该真的使用外观协议。您可以为UISearchBar的单个实例更改它,
UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"];
[searchBar setBackgroundImage:searchBg];
或者如果你在不同的场景中有多个搜索栏,这将以每个实例为主题(但是在AppDelegate之类的地方调用它以确保在你看到它们之前都正确设置了这些栏。
UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"];
[[UISearchBar appearance] setBackgroundImage:searchBg];
更新:好的,要更改搜索栏的背景,您应该使用以下其中一项,
searchBar的单个实例:
[searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal];
UISearchBars的所有实例:
[[UISearchBar appearance] setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal];
希望这有帮助。
答案 2 :(得分:1)
在iOS 7中,您只需设置:
searchBar.barTintColor = [UIColor clearColor];