Вопрос по ios5, ios, uisearchbar – Можно ли удалить фон или границы из UISearchBar?

5

Я хотел бы получить что-то вроде этого:

enter image description here

Но мне не удалось удалить исходный фон (я использую iOS5). Тем не менее, похоже, что Apple сделала это:

enter image description here

Как я могу создать то, что я хочу? Или у меня нет выбора, и единственная альтернатива, которую я имею, это настроить UITextField?

Спасибо за предложения и идеи!

РЕДАКТИРОВАТЬ: После первого ответа, это то, что я получил:

enter image description here

Кто-нибудь, как я могу удалить белый внутренний фон, не делая все полупрозрачные компонента изменения его альфа-значение? Кстати, я могу изменить белый цвет на черный цвет?

Ваш Ответ

3   ответа
6

енить его для одного экземпляра UISearchBar,

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"];
[searchBar setBackgroundImage:searchBg];

или если у вас есть несколько панелей поиска в разных сценах, это будет тема каждого экземпляра (но назовите его где-нибудь разумным, например, AppDelegate, чтобы убедиться, что все панели настроены правильно, прежде чем вы увидите какую-либо из них.

UIImage *searchBg = [UIImage imageNamed:@"search_bar.png"];
[[UISearchBar appearance] setBackgroundImage:searchBg];

Update: ОК, чтобы изменить фон панели поиска, вы должны использовать один из следующих,

Единственный экземпляр searchBar:

[searchBar setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal];

Все экземпляры UISearchBars:

[[UISearchBar appearance] setSearchFieldBackgroundImage:searchBg forState:UIControlStateNormal];

Надеюсь это поможет.

1

searchBar.barTintColor = [UIColor clearColor];
7

for (id img in yourSearchBar.subviews) {
        if ([img isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
           [img removeFromSuperview];    
        }
    }

В приведенном выше коде yourSearchBar - это панель поиска, из которой вы хотите удалить фон, И цикл for ищет фоновое изображение UISearchBar

Спасибо за ответ. Вчера я пытался и не работал, однако сегодня работает. Вы знаете, как я могу удалить белый внутренний фон? Я редактировал вопрос с этой информацией. Ricardo
отсутствует эта строка, чтобы она полностью работала: [[[searchBar subviews] objectAtIndex: 0] setHidden: YES]; от Хасана Шахзада ниже.
Удивительный ответ спас мне жизнь, спасибо миллион

Похожие вопросы