Как применить сплошной цвет к UISearchBar - PullRequest
2 голосов
/ 16 августа 2010

Я видел этот пост на SO: UISearchBar сплошной цвет

Но ответа не было.

Я хотел бы знать, как применить сплошной цвет к UISearchBar. Я применил tintColor, но он автоматически создает градиент.

Ответы [ 3 ]

15 голосов
/ 28 сентября 2010

Вы можете переопределить drawRect для панели поиска. Установив представление «UISearchBarBackground» в альфа 0, оно закрасит его в выбранный вами плоский оттенок. Например, в вашем делегате приложения добавьте это:

@implementation UISearchBar( CustomBackground )
- (void)drawRect:(CGRect)rect
{
    // Find the UISearchBarBackground view and set it's alpha to 0 so we get a "flat"
    // search bar.
    for( UIView *subview in self.subviews )
    {
        if( [subview isKindOfClass:NSClassFromString( @"UISearchBarBackground" )] )
        {
            [subview setAlpha:0.0F];
            break;
        }
    }
}
@end
2 голосов
/ 16 октября 2012
        _tempSearchBar =[[UISearchBar alloc]initWithFrame:CGRectMake(44, 0, 320 - 44, 43)];
        _tempSearchBar.barStyle=UIBarStyleDefault;
        _tempSearchBar.placeholder=@"搜索";
        for( UIView *subview in _tempSearchBar.subviews )
        {
            if( [subview isKindOfClass:NSClassFromString( @"UISearchBarBackground" )] )
            {
                UIView *aView = [[UIView alloc] initWithFrame:subview.bounds];
                aView.backgroundColor = [UIColor greenColor];
//                [subview setAlpha:0.0f];
                [subview addSubview:aView];
                break;
            }
        }
0 голосов
/ 17 августа 2010

Я сделал это:

[toolbar setTintColor:[UIColor greenColor]];

И получил это:

альтернативный текст http://gallery.me.com/davedelong/100084/Screen%20shot%202010-08-16%20at%202.44.07%20PM/web.png?ver=12819951050001

Это то, что вы ищете?

...