我想在故事板和xib的一个地方将所有系统字体更改为自定义字体。
我尝试过以下代码来更改字体。
[[UILabel appearance] setFont:[UIFont fontWithName:@"fontName" size:17.0]];
[[UITextField appearance] setFont:[UIFont fontWithName:@"fontName" size:17.0]];
当我使用上面的代码时,它的工作正常,但它的大小也在改变。
我只想更改字体系列并保持尺寸,就像在storyboard或xib中一样。
请给我一些好的解决方案。
答案 0 :(得分:0)
我认为您可以继续使用相同的语句,但不要使用您选择的文字设置大小,只需使用当前系统字体大小:
float currentSystemFontSize = [UIFont systemFontSize];
[[UILabel appearance] setFont:[UIFont fontWithName:@"fontName" size:currentSystemFontSize]];
这应该保留系统的字体大小,只更改字体系列。
检查this答案,了解有关如何获取系统字体大小的更多信息。祝你好运!
答案 1 :(得分:-1)
在ViewDidLoad()中调用以下方法:
[self setCustomFontFamilyNotSize:@"CustomFontName" forView:self.view andSubViews:YES];
方法解体:
-(void)setCustomFontFamilyNotSize:(NSString*)customFontFamily forView:(UIView*)view andSubViews:(BOOL)isSubViews
{
if ([view isKindOfClass:[UILabel class]])
{
UILabel *lbl = (UILabel *)view;
[lbl setFont:[UIFont fontWithName:customFontFamily size:[[lbl font] pointSize]]];
}
if ([view isKindOfClass:[UITextField class]])
{
UITextField *txt = (UITextField *)view;
[txt setFont:[UIFont fontWithName:customFontFamily size:[[txt font] pointSize]]];
}
}