我正在尝试添加一个没有边框的UISearchBar,但它根本不起作用。
这就是我所拥有的:
在XIB文件中,我添加了UISearchBar。风格=黑色透明。 Tint =默认。没有选择任何选项(书签,取消按钮,范围栏等)。背景=默认。 Drawing = opaque(基本上是UISearchBar的默认设置)。
我有一个UISearchBar的属性 - searchBar。 在实现文件中,当视图加载时,我有:
[[self.searchBar.subviews objectAtIndex:0] removeFromSuperview];
但无论出于何种原因,背景(盒子周围的黑色边框)根本就没有了。 我试过[[self.searchBar.subviews objectAtIndex:0] setAlpha:0],但这根本不起作用。
请帮忙吗?
答案 0 :(得分:5)
这对我有用
for (UIView * view in [[[self.searchBar subviews] objectAtIndex:0] subviews])
{
if (![view isKindOfClass:[UITextField class]])
{
view .alpha = 0;
}
}
答案 1 :(得分:4)
这是代码.....
for (id img in searchBar.subviews)
{
if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
{
[img removeFromSuperview];
}
}
快乐的编码:)
答案 2 :(得分:1)
怎么样:
[self.searchBar setOpaque:NO];
答案 3 :(得分:1)
[[_searchBar.subviews objectAtIndex:0] removeFromSuperview];
_searchBar.backgroundColor = [UIColor clearColor];
希望这对你有用,为我工作。
答案 4 :(得分:1)
这项工作仅适用于静态UISearchBar,如果您想显示搜索CancelButton,则在ios 5.0以上的设备中会出现此问题。 为此,您必须更改/设置UiSearchBar的BackgroundView。
答案 5 :(得分:1)
试试这个
for (UIView * view in [mySearchBar subviews]) {
if (![view isKindOfClass:[UITextField class]]) {
view .alpha = 0;
}
}
答案 6 :(得分:1)
对于那些使用8.0及以上版本的人来说,最好的解决方案是简单地使用UIAppearance
协议,执行以下操作:
[[UISearchBar appearance] setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
您也可以使用以下命令在一个特定实例上执行此操作:
[mySearchBar setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
答案 7 :(得分:0)
如果有人遇到与我相同的问题(见图)上面的代码可以修复
[self.tableView setContentInset:UIEdgeInsetsMake(-1, 0, 0, 0)];