我正在尝试通过外观代理自定义UISearchBar的字体。它工作,但不知何故,占位符文本不垂直居中。我试图设置垂直对齐属性;占位符文本将居中,但输入的文本将略低于中心线...有没有办法解决这个问题?
编辑:代码我用来添加自定义字体:
[[UITextField appearanceWhenContainedIn: [UISearchBar class], nil]
setFont: [UIFont customFontWithSize: 17]];
答案 0 :(得分:1)
每当发生这种情况时,通常会由UIAppearance
的一些修改导致UISearchBar
与NSForegroundColor
混合不好。看看你以前做过的任何黑客攻击,或者尝试一次一个地评论它们。
在我的特定情况下,它实际上是对文本属性中{{1}}的修改,因此这种错位可能与您的字体更改无关。
答案 1 :(得分:0)
您需要在searchBar中设置textField的对齐方式。 从UISearch栏的子视图中获取textField,只需将其对齐设置为center。尝试下面的示例代码。
- (void)viewDidLoad
{
for (UITextField *txt in _searchbar.subviews) {
if ([txt isKindOfClass:[UITextField class]]) {
[txt setTextAlignment:NSTextAlignmentCenter];
}
}
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
这里_searchbar是UISearchBar的出口。
答案 2 :(得分:0)
- (void)viewDidLoad
{
for (UITextField *txt in search.subviews) {
if ([txt isKindOfClass:[UITextField class]]) {
txt.font = [UIFont fontWithName:@"Arial-BoldMT" size:17];
txt.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
}
}
[super viewDidLoad];
}
尝试使用此代码一次。