在 iOS 中根据大小和其他属性全局更改字体类型

Posted

技术标签:

【中文标题】在 iOS 中根据大小和其他属性全局更改字体类型【英文标题】:Change UIFont type globally respecting size and other atributtes in iOS 【发布时间】:2013-10-03 01:56:29 【问题描述】:

我有一个为 ios6 开发的应用程序,我正在迁移到 iOS7

此界面使用了一种新字体:“HelveticaNeue-Light”

我想将我的系统字体全局替换为按钮、标签、文本视图、文本字段到这个,尊重所有其他属性(如果字体是粗体、斜体、字体大小......)

我该怎么做

我正在申请:

[[UILabel appearance] setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:15.0f]];

但它会改变我所有字体的大小,如果我将大小设置为默认为零,我的字体就会消失

也试过这个:

[[UILabel appearance] setFont:[UIFont preferredFontForTextStyle:@"HelveticaNeue-Light"]];

但这会将我的字体更改为小尺寸,这也不是解决方案

提前感谢您的支持

【问题讨论】:

你的问题到底是什么? 我想将整个应用的字体类型更改为“HelveticaNeue-Light”,但仅此而已,其他属性(大小、粗体、斜体)我想保留它们 【参考方案1】:

您可能需要子类 UILabel 并覆盖 awakeFromNib,如下所示:

@implementation MyUILabel

- (void)awakeFromNib

    [super awakeFromNib];
    self.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:self.font.pointSize];

@end

【讨论】:

以上是关于在 iOS 中根据大小和其他属性全局更改字体类型的主要内容,如果未能解决你的问题,请参考以下文章

MDCTabBar 更改字体类型和大小

在 iOS7 中更改 UIAlertView 的字体大小

如何根据 Xcode 中的系统字体大小更改标签的字体大小?

在kivy中设置全局字体大小

使用样式组件在反应中根据屏幕分辨率的变化更改字体大小

更改 Shell 类的后退按钮的覆盖文本的字体大小(以及,如果可能,其他字体格式属性)