UISearchBar背景色及边框修改

来源:互联网 发布:淘宝影响权重的因素 编辑:程序博客网 时间:2024/06/07 03:55

系统控件UISearchBar的组成部分主要有两个部分,一个是UISearchBarBackground,另一个是UITextField。

1、修改UISearchBarBackground的颜色

barTintColor是UISearchBar提供的一个系统方法,其作用就是修改UISearchBarBackground的颜色。

 _searchBar.barTintColor = [UIColor colorWithRed:63.0/255.0 green:66.0/255.0 blue:75.0/255.0 alpha:1.000];
2、边框黑线修改

通过上述方法修改UISearchBarBackground后,会发现UISearchBar默认有个黑色边框,上下两条,很影响整体效果,那怎么去除呢?

我这边提供一个最简单的方法,如下:

[_searchBar setBackgroundImage:[UIImage new]];
OK,你没看错,就是通过设置背景图片。

3、搜索框背景色修改

UISearchBar并没有提供直接修改的方法,但我们知道它内部其实就是一个UITextField,那么我们就可以通过找到这个UITextField,通过改UITextField来改变搜索框背景色,具体如下:

UIView *searchTextField =  [[[_searchBar.subviews firstObject] subviews] lastObject];
 searchTextField.backgroundColor = [UIColor colorWithRed:79.0/255.0 green:82.0/255.0 blue:91.0/255.0 alpha:1.000];


下面是我提供的一段代码,修改UISearchBar,并附上效果图

    _searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];    _searchBar.delegate = self;    //更改UISearchBarBackground    _searchBar.barTintColor = [UIColor colorWithRed:63.0/255.0 green:66.0/255.0 blue:75.0/255.0 alpha:1.000];    //去除边框线    [_searchBar setBackgroundImage:[UIImage new]];    //更改TextField    UIView *searchTextField =  [[[_searchBar.subviews firstObject] subviews] lastObject];    searchTextField.backgroundColor = [UIColor colorWithRed:79.0/255.0 green:82.0/255.0 blue:91.0/255.0 alpha:1.000];    searchTextField.layer.cornerRadius = 15;    searchTextField.layer.masksToBounds = YES;    [self.view addSubview:_searchBar];
最终效果图如下:







0 0
原创粉丝点击