修改字體和顏色需要用到kvc:
yourTextField.placeholder = @"username is in here!";
[yourTextField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
[yourTextField setValue:[UIFont boldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];
有一個問題即舌,當字體過小的時候驻呐,placeholder的字體會顯示不是垂直居中的,這需要用到NSParagraphStyle,
我的解決辦法是:
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"
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
}
];