2011-12-30 1 views
10

После установки цветового тона UISearchBar Уайта:Как удалить дополнительную черную линию под UISearchBar?

enter image description here

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

enter image description here

Как я могу удалить черный линия?

+0

есть вы очистили фоне поиска бара? – Maulik

+0

'searchBar.backgroundColor = [UIColor clearColor];' не помогает. – ohho

+0

Возможный дубликат [Настройка UISearchBar: попытка избавиться от черной линии 1px под панелью поиска] (http://stackoverflow.com/questions/7620564/customize-uisearchbar-trying-to-get-rid-of-the -1px-black-line-underne-the-se) – CMash

ответ

27

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

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

Я понимаю, Леголас ответ старый - но я наткнулся на такой же проблемой, и теперь кажется, что вместо BorderColor это особый вид действия, как тень, которая создает этот эффект.

Единственный способ исправить это - это поиск вида «_UISearchBarShadowView» и скрыть его.

Это подзаголовок подпрограммы поискаDisplayController.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]; 
} 
+0

Нет такой вещи, как getSubviewByClass: метод в базовом классе UIView. – DZenBot

+0

Вот почему я написал об этом в круглых скобках над примером кода. Это категория, которую я создал для упрощения рекурсивного поиска в UIViews. – Filibustr

+0

Разве это не «решение», если вы хотите отклонить свое приложение? –