如何删除UISearchBar下面的额外黑线?

时间:2011-12-30 05:01:43

标签: iphone ios5 uisearchbar

UISearchBar的色调设置为白色:

enter image description here

搜索框和表格之间有一条额外的黑线:

enter image description here

如何删除黑线?

3 个答案:

答案 0 :(得分:27)

只是一个调整...

searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];

答案 1 :(得分:0)

我意识到Legolas的答案已经过时了 - 但我偶然发现了同样的问题,现在看起来似乎没有一个borderColor是一个特殊的视图,可以作为一个阴影来创造这种效果。

解决此问题的唯一方法是搜索名为“_UISearchBarShadowView”的视图并隐藏它。

它是searchDisplayController.searchResultsTableView子视图的子视图,仅在搜索栏中输入字符后才存在。我用下面的代码解决了这个问题。

(getSubviewByClass是我创建的UIView类,用于遍历视图并通过字符串查找子视图)

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {

    [self performSelector:@selector(searchResultsTableShouldChange) withObject:nil afterDelay:0.0001];

}

- (void)searchResultsTableShouldChange {

    [[self.view getSubviewByClass:@"_UISearchBarShadowView"] setHidden:YES];
}

答案 2 :(得分:0)

searchBar.backgroundImage = [UIImage new];

请参阅“theMonster'在这里:https://stackoverflow.com/a/25275021/1751266