textField 更改placeHolder字符大小、颜色等属性

两种实现方式

  • 传统使用KVC实现
  • iOS6.0之后,有attributedPlaceholder属性,可以直接通过它更改

1.KVC实现

[self.titleTF setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

说明

如何知道keyPath是 _placeholderLabel.textColor? 可以直接断点查看子view成员变量
textField 更改placeHolder字符大小、颜色等属性_第1张图片
Paste_Image.png

2.attributedPlaceholder 设置

@property(nullable, nonatomic,copy)   NSAttributedString     *attributedPlaceholder NS_AVAILABLE_IOS(6_0);
//
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc]initWithString:holderText];
//
[placeholder addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(0, holderText.length)];
//
[placeholder addAttribute:NSFontAttributeName value:[UIFontboldSystemFontOfSize:16] range:NSMakeRange(0, holderText.length)];
//                
self.titleTF.attributedPlaceholder = placeholder;

自己踩得坑

在没有给textField.placeholder 赋值之前上面两种方法设置都是无效的,因为_placeholderLabel 是nil

textField 更改placeHolder字符大小、颜色等属性_第2张图片
Paste_Image.png

你可能感兴趣的:(textField 更改placeHolder字符大小、颜色等属性)