2010-10-21 4 views
1

У меня есть следующий фрагмент кода, чтобы удалить фон из UISearchBar:UISearchBar Нет фона Режим Пейзаж

for (UIView *subview in self.searchDisplayController.searchBar.subviews) 
{ 
    if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) 
    { 
     [subview removeFromSuperview]; 
     break; 
    } 
} 

Однако, если устройство поворачивается в альбомную черном фоне появляется позади панели поиска. Есть идеи, как это исправить? Я не совсем уверен, что это недокументировано.

Спасибо!

+0

Try это: [http://stackoverflow.com/a/9063557/384864](http://stackoverflow.com/a/9063557/384864) –

ответ

6

Я просто столкнулся с этой проблемой и нашел небольшую помощь в поиске. К сожалению, удаление этой функции не было возможным, поэтому мне пришлось это выяснить. Кажется, что представление UISearchBar имеет фон, который становится черным, когда вы меняете ориентацию. Так что мой код теперь выглядит следующим образом:

[searchBar setBackgroundColor:[UIColor clearColor]]; 
for (UIView *subview in searchBar.subviews) 
{ 
    if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) 
     [subview removeFromSuperview]; 
} 
+0

Прохладно, звучит хорошо Джон. –

+0

У вас есть идеи, почему это работает? почему backgroundColor '[UIColor clearColor] работает иначе, чем один из« nil »? – user102008

+0

thz много. Это тоже работа для меня. :) –

0

Учитывая недокументированную природу, я удалил эту функцию. Появляется ошибка из-за недокументированного вызова.

0

получил его ....

открыть интерфейс строитель под Searchbar атрибутов в поле зрения, режим устанавливается как «перерисовать» установить его на scaleToFill

Смежные вопросы