自定义字体不适用于大小 class

Custom Font not working with size class

我正在使用自定义字体,我希望使用故事板和大小对其进行自定义 class。我想根据 iPad 和 iPhone 的屏幕尺寸来改变它,屏幕尺寸越小字体尺寸越小。但如果我使用这种自定义字体,它不会改变。我正在使用 Xcode 7.

在 Storyboard 中 select 您要缩放的标签

请找到下图

从我的观点来看,所有 iphone 设备都带有高质量像素,因此这只会影响捏合水平

你不能指望 ipone x -40size -> iphone 5 - 35size

但是如果你使用设备逻辑,你可以设置你需要为 iphone 5 和 iphone x

设置的任何大小

这对你有帮助

How to determine the current iPhone/device model?

使用上面的 link 并创建扩展然后调用下面的扩展

modelName = UIDevice.current.modelName

switch modelName {
    case "iPhone SE" , "iPhone 5" , "iPhone 5c" , "iPhone 5s" :

        titleLabel.font = UIFont(name : "Vollkorn-Regular" , size : 20.0)
        name.font = UIFont(name : "OpenSans-SemiBold" , size : 12.0)

        print("i 5 series")
        break
    case "iPhone 8 Plus" :

        titleLabel.font = UIFont(name : "Vollkorn-Regular" , size : 24.0)
        name.font = UIFont(name : "OpenSans-SemiBold" , size : 16.0)

        print("i 8 series")
        break
    default:
        break
    }

您需要动态字体大小和宽度,为此您必须实现这两行代码 -

labelName.adjustsFontSizeToFitWidth = true
labelName.minimumScaleFactor = 0.3

然后从故事板上,将标签的行更改为 0-

-

或者您可以通过编程方式添加这行代码 -

labelName.numberOfLines = 0 // or you can set it 1 or 2

使用以下代码:

class MyCustomLabel: UILabel {
    override func layoutSubviews() {
        self.font = UIFont.init(name: “YourCustomFont", size: self.font.pointSize)
    }
}
  1. 现在只需将故事板中的字体从您当前的字体更改为系统字体。 select 您想使用的任何字体大小。

实际上 self.font.pointSize :- 这将帮助您从情节提要中获取字体大小(无论您使用系统字体设置什么。)

  1. 只需更改标签 class ,并在情节提要中使用 MyCustomLabel 。 现在运行您将能够看到应用程序的变化。