修改UISearchBar的背景颜色

时间:2024-06-04 13:04:08

当你看到这篇博客你就已经发现了用_searchBar.backgroundColor = [UIColor clearColor];来设置UISearchBar的颜色完全没有效果;

修改UISearchBar的背景颜色

并且,有些方法是想通过遍历出UISearchBarBackground来移除它实现背景透明,也并没有什么卵用。

下面这个方法,你不用纠结它是怎么实现的,直接复制拿去用:

_searchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] size:_searchBar.bounds.size];
/** 取消searchBar背景色 */
- (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
{
CGRect rect = CGRectMake(, , size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext(); return image;
}

这样你就可以发现背景色没有了

修改UISearchBar的背景颜色

别急,还没完,在此之后你还可以设置自己想要的颜色,还可以设置背景图

/** 设置背景图片 */
[_searchBar setBackgroundImage:[UIImage imageNamed:@"imageView"]];

修改UISearchBar的背景颜色

/** 设置背景色 */
[_searchBar setBackgroundColor:[UIColor redColor]];

修改UISearchBar的背景颜色

/** 设置文本框背景 */
[_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"imageView"] forState:UIControlStateNormal];

修改搜索框的背景色:

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