IOS 中 对 UISearchBar 设置背景颜色

UISearchBar 创建的时候 自带一个 灰色背景 很多时候我们需要 更改这个背景颜色

直接 searchBar.backgroundColor = [UIColor whiteColor];  这样设置是 无效的

在对 UISearchBar 设置背景颜色的时候 需要先把 UISearchBarBarBackground 移除

UISearchBarBarBackground 是一个 UIImageView对象 覆盖在  backgroundColor 上面 

所以直接设置背景颜色 是无效的


移除UISearchBarBarBackground 对象代码:


    for(inti =  0;i <_searchBar.subviews.count;i++){

        UIView* backView =_searchBar.subviews[i];

        if([backViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {

            [backViewremoveFromSuperview];

            [_searchBar setBackgroundColor:[UIColor clearColor]];

            break;

        }else{

            NSArray* arr =_searchBar.subviews[i].subviews;

            for(intj =0;j

                UIView* barView = arr[i];

                if([barViewisKindOfClass:NSClassFromString(@"UISearchBarBackground")] ==YES) {

                    [barViewremoveFromSuperview];

                    [_searchBar setBackgroundColor:[UIColor clearColor]];

                    break;

                }

            }

        }

    }



移除之后 再进行   [_searchBar setBackgroundColor:[UIColor clearColor]]; 处理 即可 有效

你可能感兴趣的:(IOS 中 对 UISearchBar 设置背景颜色)