iOS-设置UITextField的Placeholder颜色的几种方案

前几天写的关于UITextField博客太乱了,今天重新整理了一下。

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


简单用法:

[textFieldsetValue:[UIColorredColor]forKeyPath:@"_placeholderLabel.textColor"];

[textFieldsetValue:[UIFontboldSystemFontOfSize:16]forKeyPath:@"_placeholderLabel.font"];

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

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


1. 通过attributedPlaceholder属性修改Placeholder颜色

2. 通过KVC修改Placeholder颜色

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

① 自定义一个TextField继承自UITextField

② 重写drawPlaceholderInRect:方法

③ 在drawPlaceholderInRect方法中设置placeholder的属性

总结:

① 当我们使用纯代码创建UITextField时,用第二种方法(KVC)修改占位文字颜色是最便捷的 。 

② 当我们使用XIB或者Storyboard创建UITextField时,通过自定义UITextField,修改占位文字颜色是最适合的。 

③ 我们也可以在第三种重写方法中,通过结合第二种方法中的KVC修改属性来实现。

二.  但是有时我们项目需求是动态设置placeholderLabel的颜色。下面用四种方法,动态的设置placeholderLabel的颜色

1. addTarget

2. 代理-->遵守协议,自己做自己的代理

3. 通知

4. 重写文本框特有的方法

以上内容是平时开发公司项目时,可能遇到的奇葩的需求,以往每次遇到这样的需求总是上网查阅答案,今天自己写下这篇博客,是对以前知识的总结。同时方便以后完成同样的开发需求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容