IOS retire el marco de fondo gris UISearchBar

Cuando se utiliza el UISearchBar Personalmente, creo que una trama de fondo gris y fondo muy disonante. Los resultados establecen el fondo es un color, pero el entorno es más o no. Luego fui en línea miré para ver que hay dos maneras de resolver.

1. Conjunto barTinColor y el mismo fondo que no ve un cuadro gris. Dado que el ojo humano no puede ver lo que este es un encubrimiento. No recomiendo el uso de Kazajstán. Por supuesto, si usted piensa lo contrario problema con esto o lo puede hacer.

2. Como tal, es difícil de hacer que los subvistas del método. Este método asocia con nuestra versión, por lo que la primera versión era un juez. Hay subvistas iOS7.0 por encima de dos capas, una capa o menos. No es bueno sólo 7.0 se puede establecer directamente el color de fondo y sabor que suficiente barTinColor incoloro. A continuación, consulte el código

Hay dos maneras de escribir.

(1)

 float version = [[[UIDevice currentDevice] systemVersion] floatValue];

    if (version == 7.0) {
        _searchBar.backgroundColor = [UIColor clearColor];
        _searchBar.barTintColor = [UIColor clearColor];

    }else{
        for(int i =  0 ;i < _searchBar.subviews.count;i++){
            UIView * backView = _searchBar.subviews[i];
            if ([backView isKindOfClass:NSClassFromString(@"UISearchBarBackground")] == YES) {
                [backView removeFromSuperview];
                 [_searchBar setBackgroundColor:[UIColor clearColor]];

                break;
            }else{
                NSArray * arr = _searchBar.subviews[i].subviews;
                for(int j = 0;j<arr.count;j++   ){
                    UIView * barView = arr[i];
                    if ([barView isKindOfClass:NSClassFromString(@"UISearchBarBackground")] == YES) {

                        [barView removeFromSuperview];
                         [_searchBar setBackgroundColor:[UIColor clearColor]];

                        break;
                    }
                }
            }
        }
    }
2//     去掉UISearchBar的那个灰色背景框
    float version = [[[UIDevice currentDevice] systemVersion] floatValue];
    if ([self.searchController.searchBar respondsToSelector:@selector(barTintColor)]) {
        float iosversion7_1 = 7.1;
        if (version >= iosversion7_1){

            [[[[self.searchController.searchBar.subviews objectAtIndex:0] subviews] objectAtIndex:0] removeFromSuperview];
            [self.searchController.searchBar setBackgroundColor:[UIColor clearColor]];

        }else {            //iOS7.0

            [self.searchController.searchBar setBarTintColor:[UIColor clearColor]];
            [self.searchController.searchBar setBackgroundColor:[UIColor clearColor]];
        }
    }else {
        //iOS7.0以下
        [[self.searchController.searchBar.subviews objectAtIndex:0] removeFromSuperview];

        [self.searchController.searchBar setBackgroundColor:[UIColor clearColor]];
    }

    //    禁止搜索栏上移
    self.searchController.hidesNavigationBarDuringPresentation = NO;
Publicado 83 artículos originales · ganado elogios 12 · vistas 180 000 +

Supongo que te gusta

Origin blog.csdn.net/shengdaVolleyball/article/details/61210887
Recomendado
Clasificación