全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS改变UITextField占位文字颜色的三种方法

有时,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小时内与您取得联系。