初识UISearchBar

基本属性

  • barStyle
    UIBarStyleDefault 
    UIBarStyleBlack 
    UIBarStyleBlackOpaque 
    UIBarStyleBlackTranslucent 
  • placeholder:占位字符


  • prompt:标题


  • tintColor:光标颜色


  • 设置背景图片
 [searchBar setBackgroundImage:[UIImage imageNamed:@"infocollectClickImage"]];
  • 设置搜索框的背景图片
[searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"infocollectClickImage"] forState:UIControlStateNormal];
  • searchBar.showsSearchResultsButton = YES;


  • 取消按钮
searchBar.showsCancelButton = YES;
[searchBar setShowsCancelButton:YES animated:YES];
  • 搜索框内的图片
[searchBar setImage:[UIImage imageNamed:@"search-search-icon"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];

设置cancel/取消按钮

1.利用系统的运行时(Runtime)机制设置:

    UIButton *btn = [[UIButton alloc] init];  
    btn.titleLabel.textAlignment = NSTextAlignmentCenter; 
    [btn setTitle:@"123" forState:UIControlStateNormal];    
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [searchBar setValue:btn forKeyPath:@"cancelButton"];

运行结果:达不到需求,需要调整按钮和搜索框的位置;


2.遍历UISearchBar的子控件,设置里面的button;

   [searchBar setShowsCancelButton:YES animated:YES];
    for ( id searchView in [[[searchBar subviews] lastObject]subviews])
 {       
     YANLog(@"%@",[searchView class]);        
     if ([[searchView class] isSubclassOfClass: NSClassFromString(@"UINavigationButton")]) {                   
                YANLog(@"%@",[searchView class]);
                UIButton *cancelBtn = (UIButton *)searchView;
              //[cancelBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
                [cancelBtn setTitle:nil forState:UIControlStateNormal];            
                [cancelBtn setBackgroundImage:[UIImage imageNamed:@"AppIcon29x29"] forState:UIControlStateNormal];     
       }
  }
  • 该方法如果设置title,设置titleColor与BackgroundImage将失效;字体的颜色将显示为系统的默认颜色;

  • 所以该方法只适合设置按钮的颜色和背景图片;文字只能显示cancel或者取消;


    初识UISearchBar_第1张图片

    初识UISearchBar_第2张图片
  • 可以将项目配置设置为支持中文,字体将显示为取消;

    初识UISearchBar_第3张图片
    项目配置方法

    初识UISearchBar_第4张图片
    项目配置方法

    注意点:
    显示cancel按钮的方法要写在自定义按钮方法前面
    初识UISearchBar_第5张图片

3.利用appearance 设置:

该方法不仅可以设置文字、颜色,还可以设置字体大小;

NSMutableDictionary *attr = [NSMutableDictionary dictionary];    
attr[NSFontAttributeName] = [UIFont systemFontOfSize:13];    
attr[NSForegroundColorAttributeName] = [UIColor redColor];    
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class] , nil] setTitle:@"N"];
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitleTextAttributes:attr forState:UIControlStateNormal];

运行结果:



注意点:


初识UISearchBar_第6张图片

补充:

方法2与方法3基本可以满足需求;若修改太多,可以Textfile与button自定义一个搜索框;
而且方法2与3可以结合使用:


初识UISearchBar_第7张图片

你可能感兴趣的:(初识UISearchBar)