iOS

IOS 中 对 UISearchBar 设置背景颜色

2018-10-22  本文已影响4人  JoeWcc

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]]; 处理 即可 有效

上一篇下一篇

猜你喜欢

热点阅读