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

例如:系统默认的占位文字颜色太浅
需要加深颜色,或者改变颜色
示例:
核心代码
方法一:通过attributedPlaceholder属性修改占位文字颜色
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修改占位文字颜色
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:方法修改占位文字颜色
1、自定义一个TextField继承自UITextField
2、重写drawPlaceholderInRect:方法
3、在drawPlaceholderInRect方法中设置placeholder的属性
// 重写此方法
-(void)drawPlaceholderInRect:(CGRect)rect {
// 计算占位文字的 Size
CGSize 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修改属性来实现
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# iOS改变UITextField占位文字颜色
# iOS改变占位文字颜色
# iOS改变Placeholder颜色
# IOS UI学习教程之设置UITextField各种属性
# iOS UIAlertController中UITextField添加晃动效果与边框颜色详解
# iOS开发输入自动填充UITextField背景色
# 重写
# 请输入
# 自定义
# 当我们
# 种方法
# 自带
# 最适合
# 来实现
# 大家多多
# 第三种
# 不满足
# textFieldH
# size
# bounds
# textFieldX
# width
# padding
# CGRectMake
# UITextBorderStyleRoundedRect
# borderStyle
相关文章:
建站主机数据库如何配置才能提升网站性能?
自助网站制作软件,个人如何自助建网站?
h5网站制作工具有哪些,h5页面制作工具有哪些?
建站之星后台密码遗忘或太弱?如何重置与强化?
寿县云建站:智能SEO优化与多行业模板快速上线指南
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在云服务器上快速搭建个人网站?
如何通过.red域名打造高辨识度品牌网站?
,网站推广常用方法?
在线教育网站制作平台,山西立德教育官网?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
宝塔建站无法访问?如何排查配置与端口问题?
,柠檬视频怎样兑换vip?
青岛网站建设如何选择本地服务器?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
建站主机是否属于云主机类型?
javascript中对象的定义、使用以及对象和原型链操作小结
如何在宝塔面板中创建新站点?
如何用狗爹虚拟主机快速搭建网站?
如何实现建站之星域名转发设置?
微课制作网站有哪些,微课网怎么进?
如何快速搭建高效简练网站?
制作网站的软件免费下载,免费制作app哪个平台好?
淘宝制作网站有哪些,淘宝网官网主页?
临沂网站制作公司有哪些,临沂第四中学官网?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
清除minerd进程的简单方法
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
已有域名和空间如何搭建网站?
建站上市公司网站建设方案与SEO优化服务定制指南
安徽网站建设与外贸建站服务专业定制方案
如何用已有域名快速搭建网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何设计高效校园网站?
微信推文制作网站有哪些,怎么做微信推文,急?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何用VPS主机快速搭建个人网站?
如何用景安虚拟主机手机版绑定域名建站?
广东企业建站网站优化与SEO营销核心策略指南
大同网页,大同瑞慈医院官网?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
小型网站建站如何选择虚拟主机?
完全自定义免费建站平台:主题模板在线生成一站式服务
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
*请认真填写需求信息,我们会在24小时内与您取得联系。