更改UITextField占位文字的颜色

第一种方法


 NSAttributedString * attributed = [[NSAttributedString alloc]initWithString:@"手机号" attributes:@{NSForegroundColorAttributeName:[UIColor grayColor]}];
    self.phoneField.attributedPlaceholder = attributed;


//也可以这么写

NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc]initWithString:@"手机号"];
    [attributedString addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(0, 3)];
    self.phoneField.attributedPlaceholder = attributedString;

第二种方法

自定义textfield重写drawplaceholderrect方法

- (void)drawPlaceholderInRect:(CGRect)rect
{
    //rect 根据自己的需求调整
    [self.placeholder drawInRect:rect withAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor]}];
}

第三种方法

    ###利用运行时
    //取出_palceholderLabel变量
    UILabel * palceholderLabel = [self valueForKeyPath:@"_palceholderLabel"];
    palceholderLabel.textColor = [UIColor grayColor];
    
    
    //或者直接这样
    [self setValue:[UIColor grayColor] forKeyPath:@"_palceholderLabel.textColor"];

你可能感兴趣的:(更改UITextField占位文字的颜色)