我的应用程序中有很多标签。更改所有字体大小的最佳方法是什么?例如:
{{1}}
这可能吗?我应该在每个控制器上设置每个标签的系数,具体取决于设备吗?
答案 0 :(得分:0)
尝试为UIFont做扩展并实现方法/ s,它将返回所有缩放大小的app字体/字体。
extension UIFont {
class func appFontName(size: CGFloat) -> UIFont {
guard let font = UIFont(name: "YourFontName", size: scaledSize(size)) else {
return UIFont.systemFontOfSize(scaledSize(size))
}
return font
}
private class func scaledSize(size: CGFloat) -> CGFloat {
let coefficient = 1
switch device { // pseudocode for checking device type
case iPadPro:
coefficient = 1.2
case iPhone5:
coefficient = 0.9
case iPhone4:
coefficient = 0.8
}
return size * coefficient
}
}
使用示例:
let textField = UITextField()
textField.font = UIColor.appFontName(16) // on iPad it will be ~19
希望它会激励你;)