如何使文本标签根据不同的 Apple 产品屏幕缩放字体大小?

How do I make text labels scale the font size with different Apple product screens?

这是 ios 开发者 swift。我有一个非常简单的布局:

link1(没有足够的代表来实际 post 图片)

我想要做的就是确保 "results" 标签针对每个不同的屏幕尺寸缩放到大致相同的比例。正如您在下面看到的,3.5 屏幕和 iPad 屏幕之间的区别非常明显:

link2

所以我想使 iPad 屏幕上的标签足够大,以便在垂直和水平方向上占据与 3.5 屏幕上相同的 space 百分比。我该怎么做呢?我已经浏览过其他几个 tutorials/solutions,但它们都教给您一些不同的东西,例如如何更改标签大小,而不是字体大小。我尝试添加宽高比约束,但这只会在不改变字体大小的情况下改变它。添加 height/width 约束也只会更改标签大小而不会更改字体大小。

飞扬,

这里有一个关于检测 device/screen 大小的超级 post。

How to detect iPhone 5 (widescreen devices)?

这是我最喜欢的建议,请点击它并感谢真正的作者!

添加一个'New Swift File'->AppDelegateEx.swift

为 AppDelegate 添加一个扩展

import UIKit
extension AppDelegate {
    class func isIPhone5 () -> Bool{
         return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 568.0
    }
    class func isIPhone6 () -> Bool {
        return max(UIScreen.mainScreen().bounds.width, UIScreen.mainScreen().bounds.height) == 667.0
    }
    class func isIPhone6Plus () -> Bool {
        return max(UIScreen.mainScreen().bounds.width,     UIScreen.mainScreen().bounds.height) == 736.0
    }  
}

用法:

if AppDelegate.isIPhone5() {
    collectionViewTopConstraint.constant = 2
}else if AppDelegate.isIPhone6() {
    collectionViewTopConstraint.constant = 20
}

将它与在您的应用程序中设置字体相结合,您现在肯定正在做?

variable.font = UIFont(name: "Palatino", size: 24)

您实际上可以在情节提要中执行此操作。

1,打开故事板上的文件检查器选项卡(第一个选项卡),同时设置 Use auto layoutUse size classes 检查。

2, 然后你可以到你的标签属性(第四个标签),你会注意到旁边有一个“+”,点击它添加。

3、选择你喜欢的屏幕大小,可以参考"Adaptivity and Layout"然后select你的字体大小。

答案参考,你也可以看看