修改字体和颜色须要用到kvc:字体
yourTextField.placeholder = @"username is in here!";it
[yourTextField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];table
[yourTextField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];im
有一个问题,当字体太小的时候,placeholder的字体会显示不是垂直居中的,这须要用到NSParagraphStyle,tab
个人解决办法是:co
NSMutableParagraphStyle *style = [yourTextField.defaultTextAttributes[NSParagraphStyleAttributeName] mutableCopy];垂直居中
style.minimumLineHeight = yourTextField.font.lineHeight - (yourTextField.font.lineHeight - [UIFont systemFontOfSize:14.0].lineHeight) / 2.0;居中
yourTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"YourTextField Placeholder text"vc
attributes:@{颜色
NSForegroundColorAttributeName: [UIColor colorWithRed:255/255.0f green:255/255.0f blue:255/255.0f alpha:0.7f],
NSFontAttributeName : [UIFont systemFontOfSize:14.0],
NSParagraphStyleAttributeName : style
}
];
-摘抄