首页 > 代码库 > 【IOS】UISearchBar背景透明,去掉背景,自定义背景
【IOS】UISearchBar背景透明,去掉背景,自定义背景
ios6,ios7,ios7.1下设置UISearchbar的背景色 ios系统升级到7.1后,原来在7.0下显示正常的UISearchbar现在又出现问题了。究其原因,是由于UISearchbar的subview又做修改了。 1 //修改searchBar样式 2 3 - (void)changeSearchBar { 4 5 float version = [[[UIDevice currentDevice] systemVersion] floatValue]; 6 7 if ([_searchBar respondsToSelector:@selector(barTintColor)]) { 8 9 float iosversion7_1 = 7.1;10 11 if (version >= iosversion7_1) {12 13 //iOS7.114 15 [[[[_searchBar.subviews objectAtIndex:0] subviews] objectAtIndex:0] removeFromSuperview];16 17 [_searchBar setBackgroundColor:[UIColor clearColor]];18 19 }20 21 else { //iOS7.022 23 [_searchBar setBarTintColor:[UIColor clearColor]];24 25 [_searchBar setBackgroundColor:[UIColor clearColor]];26 27 }28 29 }30 31 else {32 33 //iOS7.0以下34 35 [[_searchBar.subviews objectAtIndex:0] removeFromSuperview];36 37 // [_searchBar setBackgroundColor:[UIColor clearColor]];38 39 [_searchBar setBackgroundColor:[UIColor colorWithPatternImage:[UIImageimageNamed:@"searchBarBg.png"]]];40 41 }}
//一行代码搞定去掉去掉背景 [[searchbar.subviews objectAtIndex:0]removeFromSuperview]; ----------------------------------------------------------------------
注意: 去掉搜索控件的背景之后在下方会出现一条黑线,我们要把那条黑线去除 1 CGRect rect = self.searchBar.frame;2 UIView *lineView = [[UIView alloc]initWithFrame:CGRectMake(0, rect.size.height-2,rect.size.width, 2)];3 lineView.backgroundColor = [UIColor whiteColor];4 [self.searchBar addSubview:lineView];
1 /*UISearchBar背景透明,去掉背景,自定义背景*/ 2 3 seachBar=[[UISearchBar alloc] init]; 4 5 6 7 //修改搜索框背景 8 9 seachBar.backgroundColor=[UIColor clearColor];10 11 //去掉搜索框背景12 13 //1.14 15 [[searchbar.subviews objectAtIndex:0]removeFromSuperview];16 17 //2.18 19 for (UIView *subview in seachBar.subviews) 20 21 { 22 23 if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])24 25 { 26 27 [subview removeFromSuperview]; 28 29 break; 30 31 } 32 33 } 34 35 //3自定义背景36 37 UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];38 39 [mySearchBar insertSubview:imageView atIndex:1];40 41 [imageView release];42 43 //4输入搜索文字时隐藏搜索按钮,清空时显示44 45 - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { 46 47 searchBar.showsScopeBar = YES; 48 49 [searchBar sizeToFit]; 50 51 [searchBar setShowsCancelButton:YES animated:YES]; 52 53 return YES; 54 55 } 56 57 - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar { 58 59 searchBar.showsScopeBar = NO; 60 61 [searchBar sizeToFit]; 62 63 [searchBar setShowsCancelButton:NO animated:YES]; 64 65 return YES; 66 67 } 68 69 //改变搜索按钮文字70 71 //改变UISearchBar取消按钮字体72 73 for(id cc in [searchBar subviews])74 75 {76 77 if([cc isKindOfClass:[UIButton class]])78 79 {80 81 UIButton *btn = (UIButton *)cc;82 83 [btn setTitle:@"搜索" forState:UIControlStateNormal];84 85 }86 87 }
|
【IOS】UISearchBar背景透明,去掉背景,自定义背景
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。