【问题标题】:iOS Foundation: system font sizeiOS Foundation:系统字体大小
【发布时间】:2023-04-05 18:39:01
【问题描述】:

我想知道 iOS 应用 tableView 中的 systemFontSize 是否总是与 textLabel 相同?这取决于风格?

例如,当我 NSLog(@"%f",[UIFont systemFontSize]); 时,我得到 14.0。这总是一样的吗?

更重要的是:如何在不更改字体系列的情况下更改字体大小(假设我的 plist 中有自己的字体)。

我试过了:

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

但 UIFont 总是想要我的字体名称/系列。我怎样才能避免这种情况并在我的所有屏幕上使用一种字体并且只更改大小?

【问题讨论】:

    标签: objective-c ios uifont


    【解决方案1】:

    系统字体大小并不总是相同。从 iOS 7 开始有Dynamic Type。用户可以在系统设置中设置自己喜欢的字体大小。这是应用程序现在获取和设置其字体大小的推荐方式。

    在界面生成器中,您可以在字体设置下选择BodyTitle 1。实际尺寸将根据用户的系统设置进行调整。您以编程方式使用UIFont.preferredFont(forTextStyle: )。有关在 iOS 10 和 Swift 3 中执行此操作的更多详细信息,请参阅 this post

    另见

    【讨论】:

    • @AdilSoomro,我找不到好的文档替换链接,但我确实用更好的链接替换了所有链接。谢谢你告诉我。
    【解决方案2】:

    只是添加到上面的答案。上述方法是 UIFont 类的成员。所以要获取默认的按钮字体大小...

    float defaultFontSize = [UIFont buttonFontSize]; 
    

    【讨论】:

      【解决方案3】:

      系统字体描述如下:

      + (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];
      

      【讨论】:

      • 从 iOS 7 开始提供了新的选项,例如 [UIFont preferredFontForTextStyle:UIFontTextStyleBody] 和通知 UIContentSizeCategoryDidChangeNotification 以监控系统范围的字体更改。
      猜你喜欢
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2018-07-30
      • 2015-07-17
      • 2019-06-26
      • 2012-11-28
      • 2014-03-06
      相关资源
      最近更新 更多