我想得到这样的东西:
但我无法删除原始背景(我使用的是 iOS5)。然而,苹果似乎做到了:
我怎样才能创造出我想要的东西?或者,别无选择,我唯一的选择是自定义 UITextField?
感谢您的建议和想法!
编辑:第一次回复后,这就是我得到的:
有谁可以在不使所有组件半透明更改其 alpha 值的情况下删除白色内部背景?顺便说一句,我可以用黑色改变白色吗?
我想得到这样的东西:
但我无法删除原始背景(我使用的是 iOS5)。然而,苹果似乎做到了:
我怎样才能创造出我想要的东西?或者,别无选择,我唯一的选择是自定义 UITextField?
感谢您的建议和想法!
编辑:第一次回复后,这就是我得到的:
有谁可以在不使所有组件半透明更改其 alpha 值的情况下删除白色内部背景?顺便说一句,我可以用黑色改变白色吗?
试试这个代码,它对我有用
for (id img in yourSearchBar.subviews) {
if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
[img removeFromSuperview];
}
}
在上面的代码中yourSearchBar是你要移除背景的搜索栏,for循环是搜索UISearchBar的背景图片
你真的应该使用外观协议。您可以为 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];
希望这可以帮助。
在 iOS 7 中,您可以设置:
searchBar.barTintColor = [UIColor clearColor];