美文网首页
修改UITextField的placeholder文字颜色

修改UITextField的placeholder文字颜色

作者: 才不是想成为啊 | 来源:发表于2016-04-06 19:45 被阅读54次

在实际开发中有时候我们需要改变UITextField的placeholder文字颜色,但是苹果好像没有提供直接能修改其颜色的属性与方法,所以我们需要一些其他手法来修改UITextField的placeholder文字颜色

第一种:运用富文本
在搜遍了UITextField的属性与方法后,找到了其中attributedPlaceholder的属性

 // 文字属性
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor grayColor];

    // NSAttributedString : 带有属性的文字(富文本技术)
    NSAttributedString *placeholder = [[NSAttributedString alloc] initWithString:@"手机号" attributes:attrs];
    self.textField.attributedPlaceholder = placeholder;
  
//修改具体每个字的设置
  NSMutableAttributedString *placehoder = [[NSMutableAttributedString alloc] initWithString:@"手机号"];
  [placehoder setAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]} range:NSMakeRange(0, 1)];
    [placehoder setAttributes:@{
                                NSForegroundColorAttributeName : [UIColor yellowColor],
                                NSFontAttributeName : [UIFont systemFontOfSize:30]
                                } range:NSMakeRange(1, 1)];
    [placehoder setAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]} range:NSMakeRange(2, 1)];
    self.textField.attributedPlaceholder = placehoder;

第二种:重写绘图 自定义UITextField

 [self.placeholder drawInRect:CGRectMake(0, 10, rect.size.width, 25) withAttributes:@{
                                                       NSForegroundColorAttributeName : [UIColor grayColor],
                                                       NSFontAttributeName : self.font}];

第三种:用kvc

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

相关文章

网友评论

      本文标题:修改UITextField的placeholder文字颜色

      本文链接:https://www.haomeiwen.com/subject/qjgplttx.html