iOS基础:系统字体大小

20

我想知道在iOS应用程序tableView中,systemFontSize是否始终对textLabel相同?这取决于样式吗?例如,当我使用NSLog(@"%f",[UIFont systemFontSize]);时,我得到14.0。这总是一样的吗?此外,如何更改字体大小而不更改字体系列(假设我在我的plist中有自己的字体)。

我尝试过:

cell.textLabel.font = [UIFont fontWithName:@"Sansation-Light" size:12.0];

但UIFont总是需要我提供字体名称/家族。我如何避免这个问题,让所有屏幕都使用同一种字体,只改变字体大小?

3个回答

35

系统字体描述如下:

+ (CGFloat)labelFontSize;//Returns the standard font size used for labels.
+ (CGFloat)buttonFontSize;//Returns the standard font size used for buttons.
+ (CGFloat)smallSystemFontSize;//Returns the size of the standard small system font.
+ (CGFloat)systemFontSize;//Returns the size of the standard system font.

你可以通过以下方式更改字体大小,而无需更改字体系列:

cell.textLabel.font = [UIFont systemFontOfSize:14];

1
自从iOS 7以来,有一些新的选项可用,例如[UIFont preferredFontForTextStyle:UIFontTextStyleBody],还有一个通知UIContentSizeCategoryDidChangeNotification,用于监视系统范围内的字体更改。 - Adil Soomro

2
系统字体大小并不总是相同的。从 iOS 7 开始,有 Dynamic Type。用户可以在系统设置中设置他们喜欢的字体大小。这是现在应用程序获取和设置其字体大小的推荐方式。
在界面构建器中,您可以在字体设置下选择诸如 BodyTitle 1 之类的选项。实际大小将根据用户的系统设置进行调整。通过编程方式,您可以使用 UIFont.preferredFont(forTextStyle: )。查看 本篇文章 了解更多有关在 iOS 10 和 Swift 3 中执行此操作的详细信息。
另请参见:

@AdilSoomro,我找不到一个好的文档替换链接,但我已经用更好的链接替换了所有的链接。谢谢你让我知道。 - Suragch

1

补充以上答案。上述方法是UIFont类的成员。因此,要获取默认按钮字体大小...

float defaultFontSize = [UIFont buttonFontSize]; 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接