更改整个应用程序中的字体大小

Posted

技术标签:

【中文标题】更改整个应用程序中的字体大小【英文标题】:Change the font sizes in the whole application 【发布时间】:2017-03-06 19:33:09 【问题描述】:

我的应用程序中有很多标签。更改所有字体大小的最佳方法是什么?例如:

func changeFontSize()

    var coefficient = 1.0
    switch device
        case iPadPro:
            coefficient = 1.2
        case iPhone5:
            coefficient = 0.9
        case iPhone4:
            coefficient = 0.8
        ...
        updateFontSizeInApplication(coefficient)    

这可能吗?我应该根据设备在每个控制器上设置每个标签的系数吗?

【问题讨论】:

您应该使用[UIFont preferredFontForTextStyle:] 方法来设置标签字体,以便用户/ios 可以选择合适的字体大小。 【参考方案1】:

尝试为 UIFont 做扩展并实现方法/s,它将返回您的所有应用程序字体/字体与缩放大小。

extension UIFont 
    class func appFontName(size: CGFloat) -> UIFont 
        guard let font = UIFont(name: "YourFontName", size: scaledSize(size)) else 
            return UIFont.systemFontOfSize(scaledSize(size))
        
        return font
    

    private class func scaledSize(size: CGFloat) -> CGFloat 
        let coefficient = 1
        switch device  // pseudocode for checking device type
        case iPadPro:
            coefficient = 1.2
        case iPhone5:
            coefficient = 0.9
        case iPhone4:
            coefficient = 0.8
        
        return size * coefficient
    

示例用法:

let textField = UITextField()
textField.font = UIFont.appFontName(16) // on iPad it will be ~19

希望它能启发你;)

【讨论】:

这如何更新应用中每个当前标签的字体? 好吧,你是对的。它不是更改应用程序中每个标签的单行代码,而是一种在整个应用程序中使用字体以使其在每个设备上可扩展的方式。

以上是关于更改整个应用程序中的字体大小的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的Excel的字体大小更改不了呢?

如何更改ggplot2中的默认字体大小

在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift

仅更改 NSAttributedString 的字体大小

如何为整个应用程序创建字体大小选项(小、正常、大)? [复制]

如何更改 UIPickerView 中的字体大小? [复制]