使用系统自带的searchBar时遇到的问题:
1> 去掉自带的背景颜色(灰框)
1.1 不做任何修改的效果 1.2 查看灰色图层控件首先找到灰色控件,然后移除,根据上面的结构图可以看到灰色控件的位置:[[[mySearch.subviews objectAtIndex:0] subviews] objectAtIndex:0],然后进行移除操作:[[[[mySearch.subviewsobjectAtIndex:0]subviews]objectAtIndex:0]removeFromSuperview];
1.3 执行后的效果图看到灰色边框确实已经去掉了
2>有时候我们还需要去掉搜索框中自带的白色背景
2.1 图层效果只需根据上面的步骤进行移除操作就可以:[[[[[mySearch.subviewsobjectAtIndex:0]subviews]objectAtIndex:0].subviewsobjectAtIndex:0]removeFromSuperview];
2.2 运行后的效果图注: 这两步一定不能改变顺序,否则会崩溃.
为了使程序不使程序崩溃, 建议使用以下代码:
for(UIView*tempVin[[mySearch.subviewsobjectAtIndex:0]subviews]) {
NSString*str =NSStringFromClass([tempVclass]);
if([strisEqualToString:@"UISearchBarBackground"]) {
//去掉背景颜色(灰色边框)
[tempVremoveFromSuperview];
}else{
//去掉白色背景
[[[tempVsubviews]objectAtIndex:0]removeFromSuperview];
}
}
网友评论