转自:http://blog.csdn.net/mazy_ma/article/details/51775670

有时,UITextField自带的Placeholder的颜色太浅或者不满足需求,所以需要修改,而UITextField没有直接的属性去修改Placeholder的颜色,所以只能通过其他间接方式去修改。

例如:系统默认的Placeholder颜色太浅

需要加深颜色,或者改变颜色

方法一:通过attributedPlaceholder属性修改Placeholder颜色

    CGFloat viewWidth  = self.view.bounds.size.width;CGFloat textFieldX = 50;CGFloat textFieldH = 30;CGFloat padding    = 30;UITextField *textField = [[UITextField alloc] init];textField.frame = CGRectMake(textFieldX, 100, viewWidth - 2 * textFieldX, textFieldH);textField.borderStyle = UITextBorderStyleRoundedRect; // 边框类型textField.font = [UIFont systemFontOfSize:14];// 就下面这两行是重点NSAttributedString *attrString = [[NSAttributedString alloc] initWithString:@"请输入占位文字" attributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:textField.font}];textField.attributedPlaceholder = attrString;[self.view addSubview:textField];

方法二:通过KVC修改Placeholder颜色

    UITextField *textField1 = [[UITextField alloc] init];textField1.frame = CGRectMake(textFieldX, CGRectGetMaxY(textField.frame) + padding, viewWidth - 2 * textFieldX, textFieldH);textField1.borderStyle = UITextBorderStyleRoundedRect;textField1.placeholder = @"请输入占位文字";textField1.font = [UIFont systemFontOfSize:14];// "通过KVC修改占位文字的颜色"[textField1 setValue:[UIColor greenColor] forKeyPath:@"_placeholderLabel.textColor"];[self.view addSubview:textField1];

方法三:通过重写UITextField的drawPlaceholderInRect:方法修改Placeholder颜色

1、自定义一个TextField继承自UITextField
2、重写drawPlaceholderInRect:方法
3、在drawPlaceholderInRect方法中设置placeholder的属性

// 重写此方法
-(void)drawPlaceholderInRect:(CGRect)rect {// 计算占位文字的 SizeCGSize placeholderSize = [self.placeholder sizeWithAttributes:@{NSFontAttributeName : self.font}];[self.placeholder drawInRect:CGRectMake(0, (rect.size.height - placeholderSize.height)/2, rect.size.width, rect.size.height) withAttributes:@{NSForegroundColorAttributeName : [UIColor blueColor],NSFontAttributeName : self.font}];
}

总结:
1、当我们使用纯代码创建UITextField时,用第二种方法(KVC)修改占位文字颜色是最便捷的 。
2、当我们使用XIB或者Storyboard创建UITextField时,通过自定义UITextField,修改占位文字颜色是最适合的。
3、我们也可以在第三种重写方法中,通过结合第二种方法中的KVC修改属性来实现。

转载于:https://www.cnblogs.com/wanghang/p/6298813.html

iOS-改变UITextField的Placeholder颜色的三种方式相关推荐

  1. html中常见表达颜色的三种方式

    html中常见表达颜色的三种方式 网页中经常应用到各种颜色,这关乎界面美观以及整体的设计感,那么,具体应用到哪几种表达方式,接下来让我们一起看看: 1 英文单词表示(局限):red(红),blue(蓝 ...

  2. html 如何改变图片形状,图形变换的三种方式是什么?

    图形变换的三种方式 1.平移 平移,是指在同一平面内,将一个图形上的所有点都按照某个直线方向做相同距离的移动,这样的图形运动叫做图形的平移运动,简称平移. 平移不改变图形的形状和大小.图形经过平移,对 ...

  3. LaTeX中设置字体颜色的三种方式

    以下的三种方式都需要导入color包,即\usepackage{color}. 实验环境:window10,TexLive2019. 1.使用系统自定义的颜色 使用语法: \textcolor{red ...

  4. echarts饼图自定义设置颜色的三种方式

    第一种方式 option下 color:['#45C2E0', '#C1EBDD', '#FFC851','#5A5476','#1869A0','#FF9393'], 整体代码如下: option ...

  5. Compose 设置颜色的三种方式

    文章目录 前言 一.直接设置 二.使用colors.xml中的颜色 三.使用compose主题中的颜色 前言 下文三种的color都是替换下列代码中的color Text(text = "T ...

  6. iOS-抠图:去除图片中指定范围颜色的三种方式

    实际项目场景:去除图片的纯白色背景图,获得一张透明底图片用于拼图功能 下面介绍两种途径的三种处理方式(不知道为啥想起了孔乙己),具体性能鶸并未对比,如果有大佬能告知,不胜感激. Core Image ...

  7. UITextView UITextField退出键盘的常用三种方式

    (1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate. - (void)textViewDidBeginEditing:( ...

  8. iOS:延时执行的三种方式

    延时执行的三种方式:performSelectorXXX方法.GCD中延时函数.创建定时器 第一种方式:NSObject分类当中的方法,延迟一段时间调用某一个方法 @interface NSObjec ...

  9. ios 应用和电脑共享文件夹_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式...

    如果你是苹果全家桶用户,一定会对 「AirDrop(隔空投送)」 功能赞誉有加,使用 AirDrop 可以在 iPhone 与 MacBook.iPad 等设备之间快速传递照片.视频或文件. 遗憾的是 ...

最新文章

  1. 工具--Eclipse/MarkDown/XMind文章分类目录
  2. 计算机科学在生物信息中的应用,生物信息学在基因组学中的应用
  3. python3的float数精度_python浮点数精度问题
  4. HTML如何做个播放器图表,Web绘图神器之ECharts-ts文件播放器
  5. 1618D. Array and Operations
  6. 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点
  7. java识别音调_你如何创建一个音调发生器,其音调可以在java中“实时”或动态地操作?...
  8. Bailian3671 字符串排序【排序】
  9. active mq topic消费后删除_【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍
  10. html target=_blank 弹出独立窗口,HTML base 标签的 target 属性 —— base target=_blank /...
  11. MySQL药品管理系统设计_药店药品管理系统的设计与实现(SSH,MySQL)(含录像)
  12. RQNOJ 34 紧急援救
  13. 工具分享-Windows 的绿色软件工具集
  14. iOS 性能优化知识梳理
  15. wps将批量数字转换成条形码_WPS怎么批量制作条码.
  16. Sublime Text3 Mac版去掉自动更新和添加中文
  17. 0905系统及数据库
  18. 用链接法实现散列表构造和查找
  19. c语言结构体世界杯,世界杯冷知识 | 12座球场的结构巡礼
  20. linux常用压缩和解压缩命令整理

热门文章

  1. Python两数之和,并返回下标
  2. DOM的appendchild在IE6、7下不兼容
  3. 在路上---学习篇(一)Python 数据结构和算法 (4) --希尔排序、归并排序
  4. vue1与vue2的路由 以及vue2项目大概了解
  5. 在Windows下使用MinGW静态编译Assimp
  6. android 调用系统的照相机和图库
  7. JSBridge的思考
  8. 2016.9.9《Oracle查询优化改写技巧与案例》电子工业出版社一书中的技巧
  9. POS DES MAC 算法
  10. Singleton Pattern (单例模式)