文档章节

iOS 设置自带UISearchBar的背景颜色

法斗斗
 法斗斗
发布于 2016/07/26 12:02
字数 452
阅读 29
收藏 0

iOS 设置自带UISearchBar的背景颜色

 

前言

起因是首先今天开始了一个新的项目,然后首页有个UITabBar而且背景是透明的,本来心想这也没啥,之前也做过不少类似的,直接复制粘贴不就OK了嘛!,然后粘过来后才发现代码都失效了(均为iOS8之前的修改方法),然后又各种百度、各种谷歌试了半天也没啥卵用,最后在一个角落发现一个方法修改成功,遂记录下来。

方法说明

此方法与之前的方法不同,之前的都是通过遍历将子View remove掉或者通过KVO来修改,所以当iOS系统版本发生变化的时候,可能就会受到影响(好像现在就受到了影响/(ㄒoㄒ)/~~)。本方法是直接设置搜索栏的背景图片,使用的是系统的API,风险明显就降低了吧。

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;

本文转载自:

共有 人打赏支持
法斗斗
粉丝 21
博文 367
码字总数 17774
作品 0
杨浦
程序员
私信 提问
定制iOS 7中的导航栏和状态栏

由于种种原因,申请了一个开源中国的帐号,也许会由于我的不耐心,不会亲自去一步步的写博文,但准备把自己看到的好的,都转载过来,就当时资源的存储,也算是一种推广吧。 iOS 7 教程:定制...

谁家的阿毛
2013/11/21
0
0
iOS中UISearchBar(搜索框)使用总结

iOS中UISearchBar(搜索框)使用总结 初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar ? 1 2 @property(nonatomic) UIBarStyle barStyle; 这个属性可以设置searchBar的...

04zhujunjie
2015/11/04
0
0
(解决办法) UISearchBar 可以呼唤出键盘但无法输入

近段时间开发ios应用,出现'UISearchBar 可以呼唤出键盘但无法输入 '问题,网上搜索后,其中只有一个贴“iOS 6 系统内 UISearchBar 可以呼唤出键盘但无法输入 ”跟我的问题类似,但是回复极少...

pgbo
2012/11/02
0
0
在Android中自定义IOS风格的按钮

IOS风格的UI比较流行,很多Android的UI设计者也愿意将Android的UI设计成类似IOS系统的UI风格。下面是一个例子,说明如何使用Shape来定义一个IOS风格的按钮。 定义一个iosbuttongrouped.xml。...

迷途d书童
2012/03/21
0
0
iOS的绘图机制-iOS,iPad,iPhone,Objective-c

嘿!我又回来了。 在前面我介绍了iOS的视图机制,我也提到了iOS的视图框框可以通过drawRect自己绘图,我也说过每个view的layer(CALayer)就像一个视图的投影,其实我们也可以来操作它定制一...

晨曦之光
2012/05/28
2.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

mac 下 mysql 8.0.13 安装并记录遇到的问题 以便以后查看

安装 官网mysql 下载地址 安装过程 省去 安装好之后 下载navicat 错误1 链接 遇到 mysql 2003 - Can't connect to MySQL server 错误, 解决方案 重启mysql 服务 #错误2 ERROR 1045: Acces...

杭州-IT攻城狮
31分钟前
3
0

中国龙-扬科
34分钟前
1
0
[Spring4.x]基于spring4.x纯注解的Web工程搭建

在前文中已经说明了如何基于 Spring4.x+ 版本开发纯注解的非web项目,链接如下: https://my.oschina.net/morpheusWB/blog/2985600 本文则主要说明,如何在Web项目中,"基于spring纯注解方式...

morpheusWB
今天
13
0
基础编程题目集-7-13 日K蜡烛图

股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线、按周的周K线、按月的月K线等。以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开...

niithub
今天
5
0
Jenkins window 下的安装使用

1.下载:https://jenkins.io/download/ 双击安装完毕,将自动打开浏览器: http://localhost:8080 打开对应位置的文件,将初始密钥粘贴至输入框。 第一个是 安装默认的软件;第二个是 自定义...

狼王黄师傅
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部