iOS-改变UITextField的Placeholder颜色的三种方式
转自: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颜色的三种方式相关推荐
- html中常见表达颜色的三种方式
html中常见表达颜色的三种方式 网页中经常应用到各种颜色,这关乎界面美观以及整体的设计感,那么,具体应用到哪几种表达方式,接下来让我们一起看看: 1 英文单词表示(局限):red(红),blue(蓝 ...
- html 如何改变图片形状,图形变换的三种方式是什么?
图形变换的三种方式 1.平移 平移,是指在同一平面内,将一个图形上的所有点都按照某个直线方向做相同距离的移动,这样的图形运动叫做图形的平移运动,简称平移. 平移不改变图形的形状和大小.图形经过平移,对 ...
- LaTeX中设置字体颜色的三种方式
以下的三种方式都需要导入color包,即\usepackage{color}. 实验环境:window10,TexLive2019. 1.使用系统自定义的颜色 使用语法: \textcolor{red ...
- echarts饼图自定义设置颜色的三种方式
第一种方式 option下 color:['#45C2E0', '#C1EBDD', '#FFC851','#5A5476','#1869A0','#FF9393'], 整体代码如下: option ...
- Compose 设置颜色的三种方式
文章目录 前言 一.直接设置 二.使用colors.xml中的颜色 三.使用compose主题中的颜色 前言 下文三种的color都是替换下列代码中的color Text(text = "T ...
- iOS-抠图:去除图片中指定范围颜色的三种方式
实际项目场景:去除图片的纯白色背景图,获得一张透明底图片用于拼图功能 下面介绍两种途径的三种处理方式(不知道为啥想起了孔乙己),具体性能鶸并未对比,如果有大佬能告知,不胜感激. Core Image ...
- UITextView UITextField退出键盘的常用三种方式
(1)如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate. - (void)textViewDidBeginEditing:( ...
- iOS:延时执行的三种方式
延时执行的三种方式:performSelectorXXX方法.GCD中延时函数.创建定时器 第一种方式:NSObject分类当中的方法,延迟一段时间调用某一个方法 @interface NSObjec ...
- ios 应用和电脑共享文件夹_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式...
如果你是苹果全家桶用户,一定会对 「AirDrop(隔空投送)」 功能赞誉有加,使用 AirDrop 可以在 iPhone 与 MacBook.iPad 等设备之间快速传递照片.视频或文件. 遗憾的是 ...
最新文章
- 工具--Eclipse/MarkDown/XMind文章分类目录
- 计算机科学在生物信息中的应用,生物信息学在基因组学中的应用
- python3的float数精度_python浮点数精度问题
- HTML如何做个播放器图表,Web绘图神器之ECharts-ts文件播放器
- 1618D. Array and Operations
- 阿里开发者招聘节 | 面试题02-04:给定一个二叉搜索树(BST),找到树中第K小的节点
- java识别音调_你如何创建一个音调发生器,其音调可以在java中“实时”或动态地操作?...
- Bailian3671 字符串排序【排序】
- active mq topic消费后删除_【SpringBoot MQ 系列】RabbitListener 消费基本使用姿势介绍
- html target=_blank 弹出独立窗口,HTML base 标签的 target 属性 —— base target=_blank /...
- MySQL药品管理系统设计_药店药品管理系统的设计与实现(SSH,MySQL)(含录像)
- RQNOJ 34 紧急援救
- 工具分享-Windows 的绿色软件工具集
- iOS 性能优化知识梳理
- wps将批量数字转换成条形码_WPS怎么批量制作条码.
- Sublime Text3 Mac版去掉自动更新和添加中文
- 0905系统及数据库
- 用链接法实现散列表构造和查找
- c语言结构体世界杯,世界杯冷知识 | 12座球场的结构巡礼
- linux常用压缩和解压缩命令整理