UISearchBar

使用系统自带的searchBar时遇到的问题:

1> 去掉自带的背景颜色(灰框)

UISearchBar_第1张图片
1.1 不做任何修改的效果
UISearchBar_第2张图片
1.2 查看灰色图层控件

首先找到灰色控件,然后移除,根据上面的结构图可以看到灰色控件的位置:[[[mySearch.subviews objectAtIndex:0] subviews] objectAtIndex:0],然后进行移除操作:[[[[mySearch.subviewsobjectAtIndex:0]subviews]objectAtIndex:0]removeFromSuperview];

UISearchBar_第3张图片
1.3 执行后的效果图

看到灰色边框确实已经去掉了

2>有时候我们还需要去掉搜索框中自带的白色背景

UISearchBar_第4张图片
2.1 图层效果

只需根据上面的步骤进行移除操作就可以:[[[[[mySearch.subviewsobjectAtIndex:0]subviews]objectAtIndex:0].subviewsobjectAtIndex:0]removeFromSuperview];

UISearchBar_第5张图片
2.2 运行后的效果图

注: 这两步一定不能改变顺序,否则会崩溃.

为了使程序不使程序崩溃, 建议使用以下代码:

for(UIView*tempVin[[mySearch.subviewsobjectAtIndex:0]subviews]) {

    NSString*str =NSStringFromClass([tempVclass]);

    if([strisEqualToString:@"UISearchBarBackground"]) {

        //去掉背景颜色(灰色边框)

        [tempVremoveFromSuperview];

    }else{

        //去掉白色背景

        [[[tempVsubviews]objectAtIndex:0]removeFromSuperview];

    }

}

项目地址: https://github.com/weijun8687/SearchBar

你可能感兴趣的:(UISearchBar)