我面临一个问题,我的应用程序需要为每种支持的语言使用不同的字体。
例如:我需要在格鲁吉亚语中使用“Arial”字体,在英语中使用“Times new roman”字体。
显然,有很多编程方法可以解决这个问题,但如何在storyboards中实现呢?
我在视图控制器上有一个从Storyboard加载的UILabel。如果我在iPhone设置中选择“格鲁吉亚”语言>>常规>>语言和地区>>首选语言顺序,并打开应用程序,则标签的字体应为“Arial”,但如果我选择“英语”语言,则标签的字体应为“Times new roman”。
注意:对于标签,代码中不应该有任何storyboard输出。
唯一想到的做法是将@IBInspectable属性作为UILabel扩展来实现,并在其中编写部分代码。
嗯,这是一种解决方案,但我正在寻找更优雅/正确的方法来做这件事。
任何帮助/建议都将非常有用。 谢谢。
我在视图控制器上有一个从Storyboard加载的UILabel。如果我在iPhone设置中选择“格鲁吉亚”语言>>常规>>语言和地区>>首选语言顺序,并打开应用程序,则标签的字体应为“Arial”,但如果我选择“英语”语言,则标签的字体应为“Times new roman”。
注意:对于标签,代码中不应该有任何storyboard输出。
唯一想到的做法是将@IBInspectable属性作为UILabel扩展来实现,并在其中编写部分代码。
extension UILabel {
@IBInspectable var adjustFont: Bool {
get { return false } // we don't care about return value
set { // this is where the game starts
if newValue {
switch systemLanguage {
case .Georgian:
self.font = UIFont(name: "Arial", size: 17)
case .English:
self.font = UIFont(name: "Times new roman", size: 17)
}
}
}
}
}
嗯,这是一种解决方案,但我正在寻找更优雅/正确的方法来做这件事。
任何帮助/建议都将非常有用。 谢谢。