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

通过UItextField自定义UISearchBar 通过UItextField自定义UISearchBar 描述了UItextField代理的来实现uisearchbar功能 立即下载

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

        }


  76. }



  77.     for (UIView *searchbuttons in self.subviews)  
  78.     {  
  79.           
  80.         if ([searchbuttons isKindOfClass:[UIButton class]]) // ios7以下  
  81.         {  
  82.             UIButton *cancelButton = (UIButton*)searchbuttons;  
  83.             cancelButton.enabled = YES;  
  84.             [cancelButton setTitleColor:textColor forState:UIControlStateNormal];  
  85.             [cancelButton setTitleColor:textColor forState:UIControlStateSelected];  
  86.              if (bgImageName)  
  87.              {  
  88.                  [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateNormal];  
  89.                  [cancelButton setBackgroundImage:[UIImage imageNamed:bgImageName] forState:UIControlStateSelected];  
  90.              }  
  91.             break;  
  92.         }  
  93.     }  
  94. }  
  95.   
  96. @end 
UISearchBar 修改占位符的放大镜 UISearchBar 修改占位符的放大镜,修改cancal,修改占位符。 立即下载

相关推荐

国央企创新负责人如何快速识别关键技术成果并推动落地?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

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

文章转自:http://blog.youkuaiyun.com/zhang_red/article/details/21447535 总结下常用的几点: 1、修改放大镜图标 [self setImage:[UIImage imageNamed:@"search_icon"] forSearchBarIcon:UISearchBarIconSearchstate:UIControlStat

tianyou的专栏 1529

海康VisionMaster表面缺陷滤波实战:从参数调优到工业检测避坑指南

本文深入探讨海康VisionMaster表面缺陷滤波技术在工业检测中的应用,从参数调优到ROI绘制与Blob分析的协同策略,提供金属外壳、锂电池铝壳等复杂表面的缺陷检测实战指南。通过多级滤波架构和动态ROI生成法,显著提升检出率至98.7%,误检率低于0.5%,为工业质检提供智能化解决方案。

ujm5678901的博客 328

iOS swift5 设置状态栏颜色 UIStatusBarStyle

preferredStatusBarStyle: UIStatusBarStyle View controller-based status bar appearance : YES

baidu_40537062的博客 1941

手把手教你用LTspice仿真扬声器阻抗曲线(附Dayton/Focal型号库)

本文详细介绍了如何使用LTspice仿真软件构建高精度扬声器模型,包括获取Dayton/Focal等厂商的SPICE模型库、模型导入方法、阻抗测试电路搭建及仿真设置。通过手把手教学,帮助读者快速掌握扬声器阻抗曲线的仿真技术,提升音响系统设计效率。

weixin_26897585的博客 388

哈工大OS实验四——进程运行轨迹的跟踪与统计

进程运行轨迹的跟踪与统计 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以后会切换到运行态;在运行的过程中如果启动了一个文件读写操作,操作系统会将该进程切换到阻塞态(等待态)从而让出 CPU;当文件读写完毕以后,操作系统会在将其切换成就绪态,等待进程调度算法来调度该进程执行…… process.c解读 void cpuio_bound(int last, int cpu_

优快云-ych 1002

uisearchbar_如何在uisearchbar中更改搜索图标

uisearchbar 让我们从UITextField开始 (Let’s start with UITextField) As you probably know, Apple has made not easy for us to access the UITextField reference on other OS versions. So here’s the code to help y...

weixin_26735419的博客 1004

Freemarker整合poi导出带有图片的Excel教程

Freemarker整合poi导出带有图片的Excel教程 https://blog.youkuaiyun.com/x541211190/article/details/105675771根据此人博客可完成此功能,但原文中有一处错误需要纠正,当单元格合并时,计算起始单元格有错误。 源代码: /** * 构造合并单元格集合 * * @param createRowIndex: * @param cellRangeAddresses: * @param startIndex: * @param c

weixin_39403349的博客 1002

46.UISearchBar的placeholder字体颜色和背景颜色

1.改变searchbar的searchField属性 UITextField *searchField = [searchbar valueForKey:@"searchField"]; if (searchField) { // 背景色 [searchField setBackgroundColor:[UIColor colorWithRed:...

weixin_30952535的博客 210

Matlab Copula函数实战:从金融风控到数据建模的5个应用场景

本文深入探讨了Matlab Copula函数在金融风控与数据建模中的五大实战应用场景,包括投资组合风险价值计算、信用违约相关性建模、跨市场套利策略优化等。通过具体代码示例和数据分析,展示了Copula模型在捕捉复杂依赖关系方面的优势,为金融风险管理和量化分析提供实用工具。

weixin_29090677的博客 425

Colmap中 patchmatch源码

惊世骇俗的Colmap PatchMatch源码 500多行,简明易懂 先了解PatchMatch的options: max_image_size: 任一维度的最大图像尺寸 gpu_index: gpu的下标 depth_min,depth_max: 随机采样的深度范围 window_radius:用于计算NCC(两图片的归一化互相关),NCC的计算需要用到 win_size. 图像匹配 | NCC 归一化互相关损失 | 代码 + 讲解 - 知乎 (zhihu.com) window_step: 用.

qq_24884193的博客 2210

uni-app里面input的placeholder颜色怎么改变?

placeholder-style="color:#fff"

黑眼圈 1万+

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7586

UISearchbar设置placeholder字体颜色大小

UITextField *textfield = [searchbar valueForKey:@"_searchField"];   [textfield setValue:color(0x999999, 1.0f) forKeyPath:@"_placeholderLabel.textColor"];   [textfield setValue:[UIFont boldSyst

lpsoga 4060

LiveBOS UploadFile.do 任意文件上传漏洞复现(XVE-2023-21708)

LiveBOS UploadFile.do 接口存在任意文件上传漏洞,未经身份验证的攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。

0xSec 2421

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

修改UISearchBar放大镜图片(_searchBar._searchField.leftView)

在-(void)viewDidLoad{}方法中添加如下代码:     for(id cc in [_searchBar subviews])     {         if([cc isKindOfClass:[UITextField class]])         {             UITextField *textField = (UITextFie

qq562475163的专栏 3252

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS UISearchBar修改placeholder字体颜色和大小

在修改searchBar上面的placeholder字体颜色时,我自己手写的代码跟正确的一模一样时,它识别不出来,总是崩,错误内容说是没有那个value,真是见鬼了。当我粘贴过来时,它就好了。爱,真是那个什么了……………… self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(20 , 20, kUISCREEN_WIDTH -

zhouwenchun 2万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

iOS UISearchBar修改placeholder字体颜色

iOS UISearchBar修改placeholder字体颜色、光标颜色、自定义搜索放大镜。 // 创建是earchBar self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero]; self.searchBar.placeholder = @"请输入厂家、设计师、产品编号"; // 自定义搜索框

wenzfcsdn的专栏 2000

iOS--UISearchBar 属性、方法详解及应用(自定义搜索框样式)

1. UISearchBar 的属性 介绍之前先说一下 UISearchBar 的初始化方法:UISearchBar 是 UIView 的子类,它的初始化方法有三种: - (instancetype)init - (instancetype)initWithFrame:(CGRect)frame - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder 1.1 搜索框风格 属性 (两种风格 default 和 black) //

binglan520的专栏 4207

iOS设置UISearchBar光标的颜色

[[UISearchBar appearance] setTintColor:[UIColor blackColor]]; 转载于:https://www.cnblogs.com/tian-sun/p/5909890.html

weixin_33885253的博客 557

iOS UISearchBar 设置光标颜色和取消按钮颜色

这个问题其实可以取个巧路,大家都知道设置SearchBar的tintcolor的方法 searchBar.tintColor = [UIColor blueColor]; [[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setT...

bafu2463的博客 317

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

自定义searchbar,重写layoutSubviews就行了,只是ios7以下与IOS7获取UITextField的方法不同,下面是我测试通过的代码: -(void)layoutSubviews {     UITextField *searchField;     searchField = Nil;     if (!IsiOS7()) {               

Ysam1983的专栏 4445

自定义UISearchBar的左边放大镜

UISearchBar是在iOS开发中经常用到的一个组件,那么我们如何来实现一个类似AMAP中的SearchBar呢? 我们可以首先来观察一下,这个searchBar和默认的有什么区别? 默认的SearchBar,如下图: 首先有起点和终点这样的文字提示,默认的是一个搜索图标。 其次是文本框的边框是圆角矩形,默认的是圆角为半圆型。 那么我们实现自定义的UISearchBar就需要

omgle的专栏 1万+

UISearchBar 修改textField背景颜色

self.searchBar.backgroundColor = leftMainColor; self.searchBar.backgroundImage=[[UIImage alloc]init]; if (@available(iOS 13.0, *)){ self.searchBar.searchTextField.backgroundColor...

小狼的博客 1128

iOS13适配问题

1. 控制器的 modalPresentationStyle 默认值变了 有用户反映升级 iOS13 后, 界面跳转变成了小卡片... 查阅了下UIModalPresentationStyle枚举定义, 发现苹果直接将modalPresentationStyle默认值改成这个,有点不解; 默认动画UIModalPresentationAutomatic; 如果想要恢复原来交互动画的话, 需要设置一下modalPresentationStyle属性; nav.modalPresentat...

u013712343的博客 1440

iOS修改UISearchBar背景颜色

貌似很简单的事啊,直接用: searchBar.backgroundColor = .red 不就OK了??? 其实,不可以!!! 因为实际上UISearchBar的层次关系是这样的: 如果按照上面那样设置的将是UISearchBar自身的背景色,但是因为它上面还覆盖了UIView和UISearchBarBarBackground两个视图,所以你基本看不到效果(因为它们有略微透明...

享受开发,颠倒银河 2682
上一篇: 如何制造一个XcodeGhost ?
Man_OC
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值