UISearchBar背景色及边框修改

本文介绍了如何修改UISearchBar的背景色和边框。使用barTintColor属性可以改变UISearchBar背景色,但默认会有黑色边框,可以通过设置边框颜色为clearColor来去除。此外,通过访问内部的UITextField,可以改变搜索框的背景色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统控件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];
最终效果图如下:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值