iOS 新版本 设置自带UISearchBar的背景颜色 感觉不错记录下来

iOS 设置自带UISearchBar的背景颜色

1、先进行图片的生成(代码生成),也可以通过UI设计师预先切好的图片。

/**

*  生成图片

*

*  @param color  图片颜色

*  @param height 图片高度

*

*  @return 生成的图片

*/

- (UIImage*) GetImageWithColor:(UIColor*)color andHeight:(CGFloat)height

{

CGRect r= CGRectMake(0.0f, 0.0f, 1.0f, height);

UIGraphicsBeginImageContext(r.size);

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);

CGContextFillRect(context, r);

UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return img;

}

2、然后就可以设置了

UIImage* searchBarBg = [self GetImageWithColor:[UIColor clearColor] andHeight:32.0f];

//设置背景图片

[_searchBar setBackgroundImage:searchBarBg];

//设置背景色

[_searchBar setBackgroundColor:[UIColor clearColor]];

//设置文本框背景

[_searchBar setSearchFieldBackgroundImage:searchBarBg forState:UIControlStateNormal];

OK,这样就大功告成了!

其他设置

1、设置字体颜色、默认字体颜色等

UITextField *searchField = [_searchBar valueForKey:@"_searchField"];

searchField.textColor = [UIColor whiteColor];

[searchField setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

2、修改放大镜

UIImage *image = [UIImage imageNamed:@"cl_tab2_gray"];

UIImageView *iconView = [[UIImageView alloc] initWithImage:image];

iconView.frame = CGRectMake(0, 0, image.size.width , image.size.height);

searchField.leftView = iconView;

你可能感兴趣的:(iOS 新版本 设置自带UISearchBar的背景颜色 感觉不错记录下来)