通过富文本改变UITextFieldPlaceholder颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过富文本改变UITextFieldPlaceholder颜色相关的知识,希望对你有一定的参考价值。

1、通过属性

a、   //文字属性(一般)

    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];

   attrs[NSForegroundColorAttributeName] = [UIColor blueColor];

  NSAttributedString *placeholderStr = [[NSAttributedString alloc] initWithString:@"手机号" attributes:attrs];

    self.phoneTextField.attributedPlaceholder = placeholderStr;

 b、稍微高级一点

    NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@"手机号"];

    [placeholder setAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor],

                                 NSFontAttributeName : [UIFont systemFontOfSize:20]

                                 } range:NSMakeRange(0, 1)];

    [placeholder setAttributes:@{NSForegroundColorAttributeName : [UIColor blueColor]} range:NSMakeRange(1, 1)];

    [placeholder setAttributes:@{NSForegroundColorAttributeName : [UIColor yellowColor]} range:NSMakeRange(2, 1)];

    self.phoneTextField.attributedPlaceholder = placeholder;

 

二、通过重写UITextField的方法

继承UITextField的类,

- (void)drawPlaceholderInRect:(CGRect)rect

{

    [self.placeholder drawInRect:CGRectMake(10, 10, 10, 1) withAttributes:@{

                                                                           NSForegroundColorAttributeName :[UIColor blueColor],

                                                                           NSFontAttributeName :[UIFont systemFontOfSize:10]

                                                                           }];

}

使用的时候,如果是xib创建的textField,就吧xib中的textField的类名改成这个自定义的,如果是代码创建,就用这个自定义的textField去创建。

以上是关于通过富文本改变UITextFieldPlaceholder颜色的主要内容,如果未能解决你的问题,请参考以下文章

Android TextView富文本SpannableStringBuilder的使用详解

kindeditor富文本编译器

HTML 文档中的富文本编辑器如何实现其富文本格式?

iOS核心笔记——富文本属性

富文本常用封装(NSAttributedString)

富文本常用封装(NSAttributedString浅析)