我使用的是自定义字体,我希望使用storyboard和size class进行自定义。我想根据iPad和iPhone的屏幕尺寸改变它,屏幕尺寸越小,字体越小。但如果我使用这种自定义字体,它不会改变。我正在使用Xcode 7。
答案 0 :(得分:1)
在Storyboard中选择要缩放的标签
请找到下面的图片
从我的观点来看,所有的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-
或者以编程方式添加此行代码 -
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)
}
}