文章转自: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

[objc] view plaincopy
  1. #import <UIKit/UIKit.h>
  2. #define kBgTextFieldImageName @"search_bar_bg.png"
  3. @interface MySearchBar : UISearchBar <UISearchBarDelegate>
  4. - (void)changeBarTextfieldWithColor:(UIColor *)color bgImageName:(NSString *)bgImageName;
  5. - (void)changeBarCancelButtonWithColor:(UIColor *)textColor bgImageName:(NSString *)bgImageName;
  6. @end

MySearchBar.m

[objc] view plaincopy
  1. #import "MySearchBar.h"
  2. #import "CommonMethods.h"
  3. @implementation MySearchBar
  4. - (id)initWithFrame:(CGRect)frame
  5. {
  6. self = [super initWithFrame:frame];
  7. if (self) {
  8. UIColor *color = [UIColor colorWithRed:255/255.0 green:128/255.0 blue:0.0 alpha:1];
  9. [self changeBarTextfieldWithColor: color bgImageName: kBgTextFieldImageName];
  10. [self changeBarCancelButtonWithColor:[UIColor whiteColor] bgImageName: nil nil];
  11. }
  12. return self;
  13. }
  14. - (void)changeBarTextfieldWithColor:(UIColor *)color bgImageName:(NSString *)bgImageName
  15. {
  16. self.tintColor=color;
  17. UITextField *textField;
  18. if ([[[UIDevice currentDevice] systemVersion] floatValue] > 6.1f) {
  19. for (UIView *subv in self.subviews) {
  20. for (UIView* view in subv.subviews) {
  21. if ([view isKindOfClass:NSClassFromString(@"UISearchBarTextField")]) {
  22. textField = (UITextField*)view;
  23. textField.layer.borderWidth=1;
  24. textField.layer.cornerRadius=6;
  25. textField.layer.borderColor=color.CGColor;
  26. break;
  27. }
  28. }
  29. }
  30. }else{
  31. for (UITextField *subv in self.subviews) {
  32. if ([subv isKindOfClass:[UITextField class]]) {
  33. textField = (UITextField*)subv;
  34. break;
  35. }
  36. }
  37. }
  38. // 设置文本框背景
  39. NSArray *subs = self.subviews;
  40. if ([[[UIDevice currentDevice] systemVersion] floatValue]  > 6.1f) { // ios 7
  41. for (int i = 0; i < [subs count]; i++) {
  42. UIView* subv = (UIView*)[self.subviews objectAtIndex:i];
  43. for (UIView* subview in subv.subviews) {
  44. if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
  45. {
  46. [subview setHidden:YES];
  47. [subview removeFromSuperview];
  48. break;
  49. }
  50. }
  51. }
  52. }else{
  53. for (int i = 0; i < [subs count]; i++) {
  54. UIView* subv = (UIView*)[self.subviews objectAtIndex:i];
  55. if ([subv isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
  56. {
  57. [subv removeFromSuperview];
  58. break;
  59. }
  60. }
  61. }
  62. UIImage *searchBarBgImage = [CommonMethods imageWithFileName: bgImageName scale:2 edgeInsets:UIEdgeInsetsMake(10, 10, 10, 10)];
  63. [textField setBackground:searchBarBgImage];
  64. }
  65. - (void)changeBarCancelButtonWithColor:(UIColor *)textColor bgImageName:(NSString *)bgImageName
  66. {
  67. if ([[[UIDevice currentDevice] systemVersion] floatValue]  > 6.1f) { // ios 7
  68. 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];

    }

  69. }
  70. for (UIView *searchbuttons in self.subviews)
  71. {
  72. if ([searchbuttons isKindOfClass:[UIButton class]]) // ios7以下
  73. {
  74. UIButton *cancelButton = (UIButton*)searchbuttons;
  75. cancelButton.enabled = YES;
  76. [cancelButton setTitleColor:textColor forState:UIControlStateNormal];
  77. [cancelButton setTitleColor:textColor forState:UIControlStateSelected];
  78. if (bgImageName)
  79. {
  80. [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];
  81. [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateSelected];
  82. }
  83. break;
  84. }
  85. }
  86. }
  87. @end

自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景相关推荐

  1. 自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景

    文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1.修改放大镜图标 [self setImage:[UII ...

  2. VUE项目修改浏览器图标及名称、修改网址图标及名称

    1.原图 2.修改,在public下的index.html中修改 3.更改成功

  3. html文本框背景颜色怎么设置,浏览器input输入框修改黄色背景色

    浏览器表单自动填充后有黄色背景, 看了下样式发现是一个样式的原因input:-webkit-autofill 网上查了下有人说添加个属性即可 autocomplete="off" ...

  4. MFC中修改静态文本框中文字的字体、颜色

    假设有一个静态文本框控件,其ID为:IDC_STATIC_XSDJ,且关联一个control类的CStatic类型的变量m_static_xsdj. 设置字体时自然要用到CFont类,下面介绍两种方法 ...

  5. WPF 调用API修改窗体风格实现真正的无边框窗体

    原文:WPF 调用API修改窗体风格实现真正的无边框窗体 WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm ...

  6. uisearchbar中自定义 放大镜图标 placeolder字体颜色 文本框背景色 兼容ios7

    自定义searchbar,重写layoutSubviews就行了,只是ios7以下与IOS7获取UITextField的方法不同,下面是我测试通过的代码: -(void)layoutSubviews ...

  7. iOS6和iOS7代码的适配(1)

    苹果的iOS7推出后,对于所有的应用来说都提出了一个天然的需求--适配不同版本的SDK.目前来说,用iOS6的SDK生成的应用,可以在iOS7的系统上跑,UI上也保持了原来的风格样式,这是苹果做的向下 ...

  8. iOS6和iOS7环境下微信登录未显示问题微信IOS的SDK:isWXAppInstalled总是返回NO和nil...

    iOS6和iOS7环境下微信登录未显示问题&微信IOS的SDK:isWXAppInstalled总是返回NO和nil 一.问题描述: iOS6和iOS7 环境下未显示微信登录界面,在其他环境下 ...

  9. 自定义UISearchBar外观

    本文转载至 http://www.jianshu.com/p/66b5b777f5dc 最近,在项目过程中遇到要自定义SearchBar的外观,虽然自己觉得用系统默认的外观就行了,不过UI设计师要求不 ...

  10. Shiro自定义realm实现密码验证及登录、密码加密注册、修改密码的验证

    一:先从登录开始,直接看代码 @RequestMapping(value="dologin",method = {RequestMethod.GET, RequestMethod. ...

最新文章

  1. 谈一谈UNet图像分割
  2. 旷视首席科学家孙剑:深度学习变革视觉计算
  3. 蓝牙 GATT 协议
  4. Win64 驱动内核编程-5.内核里操作文件
  5. 【小安翻唱】凉宫春日的忧郁--冒険でしょでしょ第五届外语歌曲大赛助兴节目~绫魂论坛送aya的生日礼物筹备开始~...
  6. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]
  7. python opencv把32位的灰度图变成8位的灰度图_python简单换脸程序
  8. HTMLParser使用
  9. 计算两个正整数的最大公约数
  10. python源码学习(七)——String对象
  11. Mapbox 纯前端绘制地图色斑图
  12. entity framework migration
  13. 动效设计入门工具小手册(微交互)
  14. sea新浪云计算机平台,新浪云计算SAE免费申请使用及域名绑定
  15. 惠普暗影精灵4pro安装ubuntu16.04
  16. 剑桥大学计算机专业博士几年毕业,剑桥大学学制是几年
  17. a链接实现alt提示
  18. 产品运营都必须知道的数据指标们
  19. 如何在网页中设置一个定时器计算时间?
  20. 【计算机网络】计算机网络、互联网、互连网、因特网、万维网

热门文章

  1. 无法在此iPhone激活面容ID怎么办?
  2. 微信发红包的测试用例功能点
  3. 苹果计算机如何显示错误,Mac闪烁问号——如何修复苹果电脑错误提示-万兴恢复专家...
  4. 云服务器搭建网站域名要备案吗,域名绑定服务器需要备案吗
  5. java黄金矿工完整源代码_黄金矿工funcode版(源码加实验报告)
  6. Simon游戏代码(C语言)
  7. 网络工程师考试内容纲要
  8. 2005 年下半年程序员上 下午试卷
  9. 加权平均np.average()
  10. 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧