我的应用程序中有很多标签。更改所有字体大小的最佳方法是什么?例如:
func changeFontSize()
{
var coefficient = 1.0
switch device{
case iPadPro:
coefficient = 1.2
case iPhone5:
coefficient = 0.9
case iPhone4:
coefficient = 0.8
...
updateFontSizeInApplication(coefficient)
}
这可能吗?我应该根据设备在每个 Controller 上设置每个标签的系数吗?
Best Answer-推荐答案 strong>
尝试为 UIFont 做扩展并实现方法/s,它将返回您的所有应用程序字体/字体与缩放大小。
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 = UIFont.appFontName(16) // on iPad it will be ~19
希望它能启发你;)
关于ios - 更改整个应用程序中的字体大小,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/40228310/
|