Как удалить дополнительную черную линию под UISearchBar?

После установки оттенка a UISearchBar на белый:

enter image description here

Между полем поиска и таблицей есть черная грань:

enter image description here

Как удалить черную линию?

Ответ 1

Просто настройка...

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

Ответ 2

Я понимаю, что ответ Леголаса старый - но я наткнулся на ту же проблему, и теперь кажется, что вместо 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];
}

Ответ 3

searchBar.backgroundImage = [UIImage new];

См. объяснение от "theMonster" здесь: fooobar.com/info/154667/...