基于手机屏幕的动态调整大小字体

时间:2017-04-13 19:07:18

标签: ios swift

我有兴趣根据显示设备动态调整我使用的字体大小。该应用程序配置为仅允许纵向显示。

24vw

如评论中所述,我收到错误struct DisplayFonts { static let NavBarTitleFont = UIFont.init(name: "Montserrat-Bold", size: 20.0*fontSizeMultipler) //error private var fontSizeMultipler: CGFloat { get { let screenSize = UIScreen.main.bounds let screenWidth: CGFloat = screenSize.width let templateScreenWidth: CGFloat = 375.0 return screenWidth / templateScreenWidth } } } 。我想知道是否有另一种方法可以使用我当前的Cannot use instance member fontSizeMultipler所以字体大小可以通过屏幕大小更新? Thaks!

3 个答案:

答案 0 :(得分:1)

你刚做了一个小错误:

struct DisplayFonts {

    static let NavBarTitleFont = UIFont.init(name: "Montserrat-Bold", size: 20.0*fontSizeMultipler)

    private static var fontSizeMultipler: CGFloat {
        get {
            let screenSize = UIScreen.main.bounds
            let screenWidth: CGFloat = screenSize.width
            let templateScreenWidth: CGFloat = 375.0

            return screenWidth / templateScreenWidth

        }
    }
}

看看我如何将var fontSizeMultipler更改为静态,现在两个变量都处于相同的可见性级别,现在它应该可以正常工作。

答案 1 :(得分:1)

您还应该将fontSizeMultipler变量声明为static:

private static var fontSizeMultipler: CGFloat

答案 2 :(得分:0)

此错误完全清楚。您正在使用“fontSizeMultipler”来计算定义为“static”的属性的值,因此您需要将“fontSizeMultipler”定义为静态