三种方法设置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这个属性,因为苹果没有让它开放出来,这里我是利用运行时把它找出来的,这里不知道运行时的,直接记住这个属性就可以。
其实我们不仅仅可以利用这些办法设置颜色,可以设置文字大小,等等
所以怎么说这三种方法都容易想到,所以我给大家写了出来,方便大家查阅使用。