Як змінити колір тла UISearchBar в iOS7


75

Як змінити колір тла UISearchBar в iOS7?

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

не сірий, я хочу змінити колір, як моя панель навігації

якщо я використовую цей код, ось що виходить

searchBar.backgroundColor = [UIColor redColor];

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

Це не червоний колір !!! Це точно така ж ситуація, як і у кольорі тла панелі навігації.


це лише я, або я не бачу твоїх фотографій?
user4951

Відповіді:


187

Потрібно використовувати:

searchBar.barTintColor = [UIColor redColor];

enter image description here

Всім дякую!


3
Це спосіб зняти прозорість на панелі пошуку? тому що колір насправді не червоний!
Аладдін Галлас,

5
@AladdinGallas, ти просто встановив напівпрозору властивість UISearchBar на NO так:[searchbar setTranslucent:NO];
Паван

я хочу додати до цієї панелі закруглені кути? як я можу це зробити?
Аніш,

1
це надає смузі червоний тон, але в цьому тоні все ще є прозорість / альфа. чи є спосіб позбутися цього і отримати чистий колір як відтінок?
Джуліан Б.

4
Встановіть стиль панелі пошуку на UISearchBarStyleMinimal, ніж ви отримаєте чистий колір.
Jeroen

59

Встановіть для фонового зображення чітке зображення, і все готово. Це також сумісно з pre-ios 7.

searchBar.backgroundImage = [[UIImage alloc] init]
searchBar.backgroundColor = [UIColor redColor];

3
Це дійсно хороша відповідь, використовуйте clearColor, якщо ви хочете мати мінімальний дизайн з білим кольором у тексті Field
StackRunner

33

Якщо наведені вище рішення не здаються ефективними, переконайтеся, що ви встановили стиль панелі пошуку на Мінімальний .

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

І для простого пошукуBar

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

SearchBar Style також можна встановити від конструктора інтерфейсу до Мінімальний .


6

це насправді не працює для мене, або іноді, якщо ти теж, спробуй це

for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews]){
                if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"])
                    view.alpha = 0;

            }

1
Застереження if могло бути просто if ([view isKindOfClass: UISearchBarBackground).
franklsf95

@ franklsf95 Це не спрацює, оскільки це незареєстрований клас.
jbouaziz

4

Якщо панель UISearchBar була визначена в MainStoryBoard, просто натисніть на цю панель UISearchBar і подивіться на параметри, якими ви можете керувати праворуч. Там, якщо натиснути на четверту вкладку (ту, яка схожа на щит), у вас є опція Bar Tint. Там ви можете вибрати потрібний колір UISearchBar.

Якщо ні, я думаю, що програмно ви можете зробити щось подібне:

    UISearchBar* sb =[[UISearchBar alloc] init];
    sb.backgroundColor=[UIColor redColor];

Сподіваюся, це допоможе!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.