Как убрать лишнюю черную линию под UISearchBar? - PullRequest
10 голосов
/ 30 декабря 2011

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

enter image description here

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

enter image description here

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

Ответы [ 3 ]

27 голосов
/ 30 декабря 2011

Просто твик ...

searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];
0 голосов
/ 01 апреля 2016

searchBar.backgroundImage = [UIImage new];

См. Объяснение 'theMonster' здесь: https://stackoverflow.com/a/25275021/1751266

0 голосов
/ 17 декабря 2013

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