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

时间:2016-10-24 22:07:17

标签: ios swift font-size

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

{{1}}

这可能吗?我应该在每个控制器上设置每个标签的系数,具体取决于设备吗?

1 个答案:

答案 0 :(得分:0)

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

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 = UIColor.appFontName(16) // on iPad it will be ~19

希望它会激励你;)