自定义字体不适用于大小 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)
}
}
- 现在只需将故事板中的字体从您当前的字体更改为系统字体。 select 您想使用的任何字体大小。
实际上 self.font.pointSize :- 这将帮助您从情节提要中获取字体大小(无论您使用系统字体设置什么。)
- 只需更改标签 class ,并在情节提要中使用 MyCustomLabel 。
现在运行您将能够看到应用程序的变化。
我正在使用自定义字体,我希望使用故事板和大小对其进行自定义 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)
}
}
- 现在只需将故事板中的字体从您当前的字体更改为系统字体。 select 您想使用的任何字体大小。
实际上 self.font.pointSize :- 这将帮助您从情节提要中获取字体大小(无论您使用系统字体设置什么。)
- 只需更改标签 class ,并在情节提要中使用 MyCustomLabel 。 现在运行您将能够看到应用程序的变化。