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

时间:2018-04-09 04:51:31

标签: ios swift storyboard xcode7

我使用的是自定义字体,我希望使用storyboard和size class进行自定义。我想根据iPad和iPhone的屏幕尺寸改变它,屏幕尺寸越小,字体越小。但如果我使用这种自定义字体,它不会改变。我正在使用Xcode 7。

I am trying to do it this way

3 个答案:

答案 0 :(得分:1)

在Storyboard中选择要缩放的标签

请找到下面的图片

enter image description here

enter image description here

从我的观点来看,所有的iphone设备都带有高质量的像素,所以这只影响了一个压力水平

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

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

这会对你有所帮助

How to determine the current iPhone/device model?

使用上面的链接创建扩展名然后调用下面的扩展名

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
    }

答案 1 :(得分:1)

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

labelName.adjustsFontSizeToFitWidth = true
labelName.minimumScaleFactor = 0.3

从您的故事板中,将标签的行更改为0-

enter image description here -

或者以编程方式添加此行代码 -

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

答案 2 :(得分:1)

使用以下代码:

class MyCustomLabel: UILabel {
    override func layoutSubviews() {
        self.font = UIFont.init(name: “YourCustomFont", size: self.font.pointSize)
    }
}
  1. 现在只需将storyboard中的字体从当前字体更改为System Font。并选择您要使用的字体大小。
  2. enter image description here

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

    1. 只需更改标签类,并在故事板中使用MyCustomLabel。 现在运行应用程序,您将能够看到更改。
    2. enter image description here