我们知道设置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这个属性,因为苹果没有让它开放出来,这里我是利用运行时把它找出来的,这里不知道运行时的,直接记住这个属性就可以。
其实我们不仅仅可以利用这些办法设置颜色,可以设置文字大小,等等
所以怎么说这三种方法都容易想到,所以我给大家写了出来,方便大家查阅使用。
备注:
如果有不足或者错误的地方还望各位读者批评指正,可以评论留言,笔者收到后第一时间回复。
QQ/微信:2366889552 /lan2018yingwei。
简书号:凡尘一笑:[简书]
http://www.jianshu.com/users/0158007b8d17/latest_articles
感谢各位观众老爷的阅读,如果觉得笔者写的还凑合,可以关注或收藏一下,不定期分享一些好玩的实用的demo给大家。
文/凡尘一笑(简书作者)
原文链接: http://www.jianshu.com/p/8ae080edb3ea
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
网友评论