自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景
文章转自:http://blog.csdn.net/zhang_red/article/details/21447535
总结下常用的几点:
1、修改放大镜图标
[self setImage:[UIImage imageNamed:@"search_icon"] forSearchBarIcon:UISearchBarIconSearchstate:UIControlStateNormal];
2、修改光标颜色
self.tintColor = [UIColorwhiteColor];
3、修改边框颜色(textField对应下文)
textField.layer.borderColor = [[UIColorclearColor]CGColor];
4、//placeholder颜色(必须先设置placeholder的内容,再添此行代码)
[textFieldsetValue:[UIColorwhiteColor] forKeyPath:@"_placeholderLabel.textColor"];
5、//字体颜色(textField对应下文)
[textFieldsetTextColor:[UIColorwhiteColor]];
6、// 设置文本框背景
[textFieldsetBackground:searchBarBgImage];
[textField setBackgroundColor:[UIColorcolorWithPatternImage:searchBarBgImage]];
MySearchBar.h
- #import <UIKit/UIKit.h>
- #define kBgTextFieldImageName @"search_bar_bg.png"
- @interface MySearchBar : UISearchBar <UISearchBarDelegate>
- - (void)changeBarTextfieldWithColor:(UIColor *)color bgImageName:(NSString *)bgImageName;
- - (void)changeBarCancelButtonWithColor:(UIColor *)textColor bgImageName:(NSString *)bgImageName;
- @end
MySearchBar.m
- #import "MySearchBar.h"
- #import "CommonMethods.h"
- @implementation MySearchBar
- - (id)initWithFrame:(CGRect)frame
- {
- self = [super initWithFrame:frame];
- if (self) {
- UIColor *color = [UIColor colorWithRed:255/255.0 green:128/255.0 blue:0.0 alpha:1];
- [self changeBarTextfieldWithColor: color bgImageName: kBgTextFieldImageName];
- [self changeBarCancelButtonWithColor:[UIColor whiteColor] bgImageName: nil nil];
- }
- return self;
- }
- - (void)changeBarTextfieldWithColor:(UIColor *)color bgImageName:(NSString *)bgImageName
- {
- self.tintColor=color;
- UITextField *textField;
- if ([[[UIDevice currentDevice] systemVersion] floatValue] > 6.1f) {
- for (UIView *subv in self.subviews) {
- for (UIView* view in subv.subviews) {
- if ([view isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
- textField = (UITextField*)view;
- textField.layer.borderWidth=1;
- textField.layer.cornerRadius=6;
- textField.layer.borderColor=color.CGColor;
- break;
- }
- }
- }
- }else{
- for (UITextField *subv in self.subviews) {
- if ([subv isKindOfClass:[UITextField class]]) {
- textField = (UITextField*)subv;
- break;
- }
- }
- }
- // 设置文本框背景
- NSArray *subs = self.subviews;
- if ([[[UIDevice currentDevice] systemVersion] floatValue] > 6.1f) { // ios 7
- for (int i = 0; i < [subs count]; i++) {
- UIView* subv = (UIView*)[self.subviews objectAtIndex:i];
- for (UIView* subview in subv.subviews) {
- if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
- {
- [subview setHidden:YES];
- [subview removeFromSuperview];
- break;
- }
- }
- }
- }else{
- for (int i = 0; i < [subs count]; i++) {
- UIView* subv = (UIView*)[self.subviews objectAtIndex:i];
- if ([subv isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
- {
- [subv removeFromSuperview];
- break;
- }
- }
- }
- UIImage *searchBarBgImage = [CommonMethods imageWithFileName: bgImageName scale:2 edgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)];
- [textField setBackground:searchBarBgImage];
- }
- - (void)changeBarCancelButtonWithColor:(UIColor *)textColor bgImageName:(NSString *)bgImageName
- {
- if ([[[UIDevice currentDevice] systemVersion] floatValue] > 6.1f) { // ios 7
UIButton *cancelButton;
UIView *topView = self.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton *)subView;
}
}
if (cancelButton) {
[cancelButton setTitle:@"取消" forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
[cancelButton setBackgroundImage:[UIImageimageNamed:@"search_cancelbutton"] forState:UIControlStateNormal];
}
- }
- for (UIView *searchbuttons in self.subviews)
- {
- if ([searchbuttons isKindOfClass:[UIButton class]]) // ios7以下
- {
- UIButton *cancelButton = (UIButton*)searchbuttons;
- cancelButton.enabled = YES;
- [cancelButton setTitleColor:textColor forState:UIControlStateNormal];
- [cancelButton setTitleColor:textColor forState:UIControlStateSelected];
- if (bgImageName)
- {
- [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
- [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateSelected];
- }
- break;
- }
- }
- }
- @end
自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景相关推荐
- 自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景
文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1.修改放大镜图标 [self setImage:[UII ...
- VUE项目修改浏览器图标及名称、修改网址图标及名称
1.原图 2.修改,在public下的index.html中修改 3.更改成功
- html文本框背景颜色怎么设置,浏览器input输入框修改黄色背景色
浏览器表单自动填充后有黄色背景, 看了下样式发现是一个样式的原因input:-webkit-autofill 网上查了下有人说添加个属性即可 autocomplete="off" ...
- MFC中修改静态文本框中文字的字体、颜色
假设有一个静态文本框控件,其ID为:IDC_STATIC_XSDJ,且关联一个control类的CStatic类型的变量m_static_xsdj. 设置字体时自然要用到CFont类,下面介绍两种方法 ...
- WPF 调用API修改窗体风格实现真正的无边框窗体
原文:WPF 调用API修改窗体风格实现真正的无边框窗体 WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm ...
- uisearchbar中自定义 放大镜图标 placeolder字体颜色 文本框背景色 兼容ios7
自定义searchbar,重写layoutSubviews就行了,只是ios7以下与IOS7获取UITextField的方法不同,下面是我测试通过的代码: -(void)layoutSubviews ...
- iOS6和iOS7代码的适配(1)
苹果的iOS7推出后,对于所有的应用来说都提出了一个天然的需求--适配不同版本的SDK.目前来说,用iOS6的SDK生成的应用,可以在iOS7的系统上跑,UI上也保持了原来的风格样式,这是苹果做的向下 ...
- iOS6和iOS7环境下微信登录未显示问题微信IOS的SDK:isWXAppInstalled总是返回NO和nil...
iOS6和iOS7环境下微信登录未显示问题&微信IOS的SDK:isWXAppInstalled总是返回NO和nil 一.问题描述: iOS6和iOS7 环境下未显示微信登录界面,在其他环境下 ...
- 自定义UISearchBar外观
本文转载至 http://www.jianshu.com/p/66b5b777f5dc 最近,在项目过程中遇到要自定义SearchBar的外观,虽然自己觉得用系统默认的外观就行了,不过UI设计师要求不 ...
- Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证
一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod. ...
最新文章
- 谈一谈UNet图像分割
- 旷视首席科学家孙剑:深度学习变革视觉计算
- 蓝牙 GATT 协议
- Win64 驱动内核编程-5.内核里操作文件
- 【小安翻唱】凉宫春日的忧郁--冒険でしょでしょ第五届外语歌曲大赛助兴节目~绫魂论坛送aya的生日礼物筹备开始~...
- 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]
- python opencv把32位的灰度图变成8位的灰度图_python简单换脸程序
- HTMLParser使用
- 计算两个正整数的最大公约数
- python源码学习(七)——String对象
- Mapbox 纯前端绘制地图色斑图
- entity framework migration
- 动效设计入门工具小手册(微交互)
- sea新浪云计算机平台,新浪云计算SAE免费申请使用及域名绑定
- 惠普暗影精灵4pro安装ubuntu16.04
- 剑桥大学计算机专业博士几年毕业,剑桥大学学制是几年
- a链接实现alt提示
- 产品运营都必须知道的数据指标们
- 如何在网页中设置一个定时器计算时间?
- 【计算机网络】计算机网络、互联网、互连网、因特网、万维网
热门文章
- 无法在此iPhone激活面容ID怎么办?
- 微信发红包的测试用例功能点
- 苹果计算机如何显示错误,Mac闪烁问号——如何修复苹果电脑错误提示-万兴恢复专家...
- 云服务器搭建网站域名要备案吗,域名绑定服务器需要备案吗
- java黄金矿工完整源代码_黄金矿工funcode版(源码加实验报告)
- Simon游戏代码(C语言)
- 网络工程师考试内容纲要
- 2005 年下半年程序员上 下午试卷
- 加权平均np.average()
- 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧