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

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

введите здесь описание изображения

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

введите здесь описание изображения

Как убрать черную полосу?


person ohho    schedule 30.12.2011    source источник
comment
ты очистил фон строки поиска?   -  person Maulik    schedule 30.12.2011
comment
searchBar.backgroundColor = [UIColor clearColor]; не помогает.   -  person ohho    schedule 30.12.2011


Ответы (3)


Просто доработка...

searchBar.layer.borderWidth = 1;
searchBar.layer.borderColor = [[UIColor whiteColor] CGColor];
person Legolas    schedule 30.12.2011

Я понимаю, что ответ Леголаса устарел, но я наткнулся на ту же проблему, и теперь кажется, что вместо 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];
}
person Filibustr    schedule 17.12.2013
comment
Нет такой вещи, как метод getSubviewByClass: в базовом классе UIView. - person DZenBot; 05.01.2014
comment
Поэтому я написал об этом в скобках над кодом примера. Это категория, которую я создал, чтобы упростить рекурсивный поиск в UIViews. - person Filibustr; 09.01.2014
comment
Разве это не решение, если вы хотите, чтобы ваше приложение было отклонено? - person Iulian Onofrei; 17.09.2015

searchBar.backgroundImage = [UIImage новый];

См. объяснение от «Монстра» здесь: https://stackoverflow.com/a/25275021/1751266

person CMash    schedule 01.04.2016