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.1 14 15 [[[[_searchBar.subviews objectAtIndex:0] subviews] objectAtIndex:0] removeFromSuperview]; 16 17 [_searchBar setBackgroundColor:[UIColor clearColor]]; 18 19 } 20 21 else { //iOS7.0 22 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 }
|
转载于:https://www.cnblogs.com/DannyApple/p/3969393.html