我在UITableView
中嵌入了UISearchBar
和UIView
。 searchBar
位于顶部,我正在努力实现一些看起来非常直接的东西;我试图使UISearchBar
透明并采用背景颜色。
这是一个示例图片。
我尝试过很多事情都没有成功。
我将barTint和tintColor设置为清除:
self.nameAddSearchBar.barTintColor = [UIColor clearColor];
self.nameAddSearchBar.tintColor = [UIColor clearColor];
我尝试过设置barMetrics:
[self.nameAddSearchBar setBackgroundImage:[UIImage imageNamed:@"Transparent.png"] forBarPosition:0 barMetrics:UIBarMetricsDefault];
我试过了
self.nameAddSearchBar.backgroundImage = [UIImage imageNamed:@"Transparent.png"];
但这些都不起作用。我可以添加一个特定的NavBar图像:
self.nameAddSearchBar.backgroundImage = [UIImage imageNamed:@"GreenNav.png"];
完美无缺,但由于图像中断,它看起来很奇怪。因此,我只是希望这个UISearchBar是一个clearColor,所以背景颜色通过它。
UISearchBar是在故事板中创建的,我打开了Translucent。我有条纹色调,背景和色调设置为清除颜色,但在所有情况下,它始终与图像中的白色边框。
对此的任何指导都将非常感激。
答案 0 :(得分:3)
试试这个,
self.searchBar.backgroundColor = [UIColor clearColor];
self.searchBar.searchBarStyle = UIBarStyleBlackTranslucent;
self.searchBar.placeholder = @"Search...";
self.searchBar.layer.cornerRadius = 15;
self.searchBar.layer.backgroundColor = [UIColor clearColor].CGColor;
self.searchBar.layer.borderWidth=8;
[[NSClassFromString(@"UISearchBarTextField") appearanceWhenContainedIn:[UISearchBar class], nil] setBorderStyle:UITextBorderStyleNone];
self.searchBar.layer.borderColor=[UIColor clearColor].CGColor;
答案 1 :(得分:2)
我希望能帮助你。
self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
或
[searchBar setBackgroundImage:[UIImage new]];
[searchBar setTranslucent:YES];
答案 2 :(得分:0)
检查一下,
self.navigationController.navigationBar.translucent = NO; // If you have a navBar
self.searchDisplayController.searchBar.translucent = NO;
答案 3 :(得分:0)
[self.mySearchBar setBackgroundImage:[[UIImage alloc] init]];
希望这对你有用。
答案 4 :(得分:0)
我为Swift 3打包了一个非常简单和漂亮的扩展,将UISearchBar扩展为半透明。它涉及使用两个非常简单的扩展。
您可以从此github repository下载。