it-swarm.com.ru

Поиск Бар фоновый цвет Серый ios7

В настоящее время я работаю над приложением, которое работало нормально, пока не появился ios7. Раньше панель поиска была прозрачной и сливалась с синим фоном панели навигации. Теперь, когда я работаю в ios7, панель навигации синего цвета, однако панель поиска имеет серый фон. Как мне сделать его синим или прозрачным?

Вот изображение:

enter image description here

13
Freddy

Попробуй это:

if(IOS_7)
{
    self.searchBar.searchBarStyle = UISearchBarStyleMinimal;
}
35
Quang Hà

Вы можете установить "Bar Tint" в "Clear Color" в Интерфейсном Разработчике (.xib):

enter image description here

Это также можно сделать в коде:

self.searchBar.barTintColor = [UIColor clearColor];
12
David Douglas

Чтобы сделать его ровным цветом, вам просто необходимо удалить представление UISearchBarBackground.

Я создал рекурсивный метод для правильной очистки панели поиска.

- (void) removeUISearchBarBackgroundInViewHierarchy:(UIView *)view
{
    for (UIView *subview in [view subviews]) {
        if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")]) {
            [subview removeFromSuperview];
            break; //To avoid an extra loop as there is only one UISearchBarBackground
        } else {
            [self removeUISearchBarBackgroundInViewHierarchy:subview];
        }
    }
}

Вы можете просто отправить свою строку поиска в метод и затем изменить цвет.

[self removeUISearchBarBackgroundInViewHierarchy:self.searchDisplayController.searchBar];
self.searchDisplayController.searchBar.backgroundColor = yourUIColor;
6
Gabriel Cartier

Swift 4.2

Вы можете использовать это расширение для изменения цвета шрифта и фона панели поиска.

extension UISearchBar {

    var textField: UITextField? {
        let subViews = subviews.flatMap { $0.subviews }
        guard let tf = (subViews.filter { $0 is UITextField }).first as? UITextField else { return nil }
        return tf
    }

    func setTextColor(color: UIColor) {
         textField?.textColor = color
    }

    func setBackgroundColor(color: UIColor) {
         textField?.backgroundColor = color
    }
}
0
Deniz Mersinlioglu