更改整个应用程序中的字体大小
Posted
技术标签:
【中文标题】更改整个应用程序中的字体大小【英文标题】:Change the font sizes in the whole application 【发布时间】:2017-03-06 19:33:09 【问题描述】:我的应用程序中有很多标签。更改所有字体大小的最佳方法是什么?例如:
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)
这可能吗?我应该根据设备在每个控制器上设置每个标签的系数吗?
【问题讨论】:
您应该使用[UIFont preferredFontForTextStyle:]
方法来设置标签字体,以便用户/ios 可以选择合适的字体大小。
【参考方案1】:
尝试为 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
希望它能启发你;)
【讨论】:
这如何更新应用中每个当前标签的字体? 好吧,你是对的。它不是更改应用程序中每个标签的单行代码,而是一种在整个应用程序中使用字体以使其在每个设备上可扩展的方式。以上是关于更改整个应用程序中的字体大小的主要内容,如果未能解决你的问题,请参考以下文章
在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift