iOS开发-修改UITextField的placeholder字体颜色并垂直居中

修改字体和颜色需要用到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

}

];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容