UISearchBar--改变内部输入框的背景颜色

思路是获取UISearchBar的子视图,判断他是否是输入框(注意不要先入为主地认为是UITextField),最后修改背景色。至于UISearchBar的子视图结构,在不同的iOS版本可能会不一样,可通过递归地调用description方法获知,具体可见链接http://blog.csdn.net/forestml2008/article/details/32914915

下面附上代码:

 1 - (void)setSearchTextFieldBackgroundColor:(UIColor *)backgroundColor
 2 {
 3     UIView *searchTextField = nil;
 4     if (IsiOS7OrLater) {
 5         // 经测试, 需要设置barTintColor后, 才能拿到UISearchBarTextField对象
 6         self.barTintColor = [UIColor whiteColor];
 7         searchTextField = [[[self.subviews firstObject] subviews] lastObject];
 8     } else { // iOS6以下版本searchBar内部子视图的结构不一样
 9         for (UIView *subView in self.subviews) {
10             if ([subView isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
11                 searchTextField = subView;
12             }
13         }
14     }
15
16     searchTextField.backgroundColor = backgroundColor;
17 }
时间: 2024-10-21 05:39:39

UISearchBar--改变内部输入框的背景颜色的相关文章

MFC 如何改变对话框的默认背景颜色(转)

下面介绍三种方法:实现改变对话框的默认背景颜色: (1)可以在CLotteryApp::InitInstance()设置更新对话框的背景颜色 调用SetDialogBkColor(RGB(160,32,240)) 即可以改变背景颜色 注意这里绘制的颜色是针对程序中所有的对话框 SetDialogBkColor(RGB(0,0,255),RGB(255,0,0)); 前一个RGB是背景色,后一RGB是文本颜色 (2)也可以再CLotteryDlg::OnPaint() 函数里的 else 之后括号

CSS3改变页面默认选中背景颜色及设置页面禁止全选或局部选择

改变默认选中的背景颜色 ::-moz-selection{background:#FF0000;color:#FFFFFF;} ::selection {background:#FF0000;color:#FFFFFF;} code::-moz-selection {background:#FF0000;color:#FFFFFF;} code::selection {background:#FF0000;color:#FFFFFF;} 设置页面禁止选中 /*全局*/ html,body{ pa

导航条——动态改变导航菜单的背景颜色

1.概述 在浏览一些网站时,当鼠标经过导航菜单某一项时,其背景颜色将切换为其他颜色,实现这种简单的效果会更吸引浏览者的注意. 2.技术要点 本实例主要是应用JavaScript方法来动态改变<td>标签的背景颜色实现的.当鼠标经过<td>表示的导航菜单时,会触发onMouseOver事件,然后调用自定义的JavaScript方法改变<td>的背景颜色:当鼠标移出<td>时,会触发onMouseOut事件,调用自定义的JavaScript方法还原背景颜色为初始

css selection改变文字反选的背景颜色

<style type="text/css"><!--.ai::-moz-selection { background:#cc0000; color:#fff; }.ai::selection { background:#cc0000; color:#fff; }.av::-moz-selection { background:#FFCC00; color:#CC33FF; }.av::selection { background:#FFCC00; color:#CC

在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色

原文:在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色 例如根据学生的年龄来修改,年龄小于18岁的,该行为红色显示,如何做到 解决方法 1: 在你需要加载的键入代码,我一般放在TabControl的selected事件中 ?Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle, new Action(方法名)); ? 我个人定义了一个方法 ?for (i

EXTJS根据值Value改变gridpanel单元格背景颜色或者设置整行字体颜色

第一步. 设置样式 .reportColor4{background: #93A9C1;}.reportColor5{background: #EEEEEE;} 第二步.修改单元格样式 header : '流通类型',width : 80,sortable : true,align : 'center',dataIndex: 'BR_TYPE',// css : 'background: #acdaf4;', // ----- 设置整个单元格的样式,但是不能根据条件变化renderer:func

css改变input输入框placeholder值颜色

::-webkit-input-placeholder { /* WebKit browsers */ color: #fff; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #fff; opacity: 1; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #fff; opacity: 1; } :-ms-input-placeholder { /* Inte

动态改变Listview的item背景颜色和item中字体的颜色

首先非常感谢原文章作者. 今天项目用到Listview点击item变色.网上找了好久,都没有找到简单的方法,好像只能重写getview(): 网上找到了一个比较简单的例子,但是不懂为什么,先记录下来以后慢慢学习. <span style="font-size:24px;">package leoli.com.focuslistview; import android.graphics.Color; import android.support.v7.app.AppCompa

取消a标签在移动端点击时的背景颜色

一.取消a标签在移动端点击时的蓝色  -webkit-tap-highlight-color: rgba(255, 255, 255, 0);  -webkit-user-select: none;  -moz-user-focus: none;  -moz-user-select: none; 二.使用图片作为a标签的点击按钮时,当触发touchstart的时候,往往会有一个灰色的背景 a,a:hover,a:active,a:visited,a:link,a:focus{     -webk