三种方法设置UITextField的占位文字颜色

简介: 三种方法设置UITextField的占位文字颜色

三种方法设置UITextField的占位文字颜色


我们知道设置UITextField的占位文字

UITextField.placeholder = @"请设置账号";

而且默认是灰色的,但是有时候我们需要的占位文字却不一定是灰色的,可以是浅浅的白色,或者其他颜色。

不多废话,上代码

第一种方式:要拿到UIextField的attributedPlaceholder属性

// 设置占位文字颜色
    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
//这里我就设置成白色
    attributes[NSForegroundColorAttributeName] = [UIColor whiteColor];
    UITextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:attributes];

第二种方式:我们可以使用Quartz 2D画出占位文字

// 文字属性
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor whiteColor];
    attrs[NSFontAttributeName] = UITextField.font;
    CGPoint placeholderPoint = CGPointMake(0, (rect.size.height - self.font.lineHeight) * 0.5);
    [UITextField.placeholder drawAtPoint:placeholderPoint withAttributes:attrs];

第三种方式:利用KVC

[UITextField setValue:[UIColor whiteColor] forKeyPath:@"placeholderLabel.textColor"];

分析这三种方法

第一种其实容易想到,但代码量多一点

第二种不容易操作,很多人其实不知道Quartz 2D的使用,虽然这里只是非常简单的使用

第三种代码量最少,但是其实我们是不能直接拿到placeholderLabel这个属性,因为苹果没有让它开放出来,这里我是利用运行时把它找出来的,这里不知道运行时的,直接记住这个属性就可以。

其实我们不仅仅可以利用这些办法设置颜色,可以设置文字大小,等等

所以怎么说这三种方法都容易想到,所以我给大家写了出来,方便大家查阅使用。

相关文章
|
前端开发
css只改变input输入框光标颜色不改变文字颜色实现方法
css只改变input输入框光标颜色不改变文字颜色实现方法
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
370 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
|
Swift
Swift之设置UItextField的占位文字颜色颜色
Swift之设置UItextField的占位文字颜色颜色
264 0
Swift之设置UItextField的占位文字颜色颜色
同一个UILabel不同的字体颜色
同一个UILabel不同的字体颜色
66 0
UITextView设置边框
UITextView设置边框
61 0
|
iOS开发
修改UISearchBar背景颜色
修改UISearchBar背景颜色
178 0