Ответ 1
Просто настройка...
searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];
После установки оттенка a UISearchBar
на белый:
Между полем поиска и таблицей есть черная грань:
Как удалить черную линию?
Просто настройка...
searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];
Я понимаю, что ответ Леголаса старый - но я наткнулся на ту же проблему, и теперь кажется, что вместо borderColor это особое представление, действующее как тень, создающая этот эффект.
Единственный способ исправить это - это поиск вида "_UISearchBarShadowView" и скрыть его.
Это подзаголовок подзаголовка searchDisplayController.searchResultsTableView и существует только после ввода символа в панель поиска. Я исправил проблему с помощью кода ниже.
(getSubviewByClass - это категория UIView I, созданная для прокрутки представлений и поиска подзонов по строке)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
[self performSelector:@selector(searchResultsTableShouldChange) withObject:nil afterDelay:0.0001];
}
- (void)searchResultsTableShouldChange {
[[self.view getSubviewByClass:@"_UISearchBarShadowView"] setHidden:YES];
}
searchBar.backgroundImage = [UIImage new];
См. объяснение от "theMonster" здесь: fooobar.com/info/154667/...