我把Xcode更新到了15版。我的问题是,当我在iOS设备和模拟器上运行我的应用程序时,我通过故事板设置的字体不能正确反映。有人知道为什么吗?我知道一个解决办法是以编程方式设置字体,正如我发现的那样,苹果在他们的发行说明中描述了这一点,但我 * 真的 * 希望避免这种情况,如果一个不那么乏味的解决方案碰巧存在!
qvtsj1bj1#
我所做的是为UILabel/UIButton和UITextField创建一个扩展,并通过@IBInspectable将其暴露给故事板,在那里我传递了我需要的给定自定义字体的大小。然后你从故事板或xib设置它,它应该像编程添加的那样工作。
UILabel
UIButton
UITextField
@IBInspectable
extension UIButton { @IBInspectable var robotoMedium: CGFloat { set { titleLabel?.font = UIFont(name: "Roboto-Medium", size: newValue) } get { return 0.0 } } @IBInspectable var robotoNormal: CGFloat { set { titleLabel?.font = UIFont(name: "Roboto-Regular", size: newValue) } get { return 0.0 } } @IBInspectable var robotoBold: CGFloat { set { titleLabel?.font = UIFont(name: "Roboto-Bold", size: newValue) } get { return 0.0 } } }
btxsgosb2#
不幸的是,正如你所说的,这是一个known issue in Xcode 15,因为早期的测试版,并仍然存在于正式发布。使用自定义应用程序字体的Interface Builder文档可能会在运行时加载错误的字体。(113624207)(FB12903371)解决办法:在代码中手动设置字体。我当然希望修复很快就会到来,但由于他们现在似乎把精力集中在SwiftUI上,这可能需要时间。目前仅有的解决方法是:
abithluo3#
https://developer.apple.com/documentation/xcode-release-notes/xcode-15_0_1-release-notesin xcode 15.0.1 -> Interface Builder Resolved Issues修复了使用自定义应用字体的Interface Builder文档在运行时加载不正确字体的问题。(116019276)
3条答案
按热度按时间qvtsj1bj1#
我所做的是为
UILabel
/UIButton
和UITextField
创建一个扩展,并通过@IBInspectable
将其暴露给故事板,在那里我传递了我需要的给定自定义字体的大小。然后你从故事板或xib设置它,它应该像编程添加的那样工作。btxsgosb2#
不幸的是,正如你所说的,这是一个known issue in Xcode 15,因为早期的测试版,并仍然存在于正式发布。
使用自定义应用程序字体的Interface Builder文档可能会在运行时加载错误的字体。(113624207)(FB12903371)
解决办法:在代码中手动设置字体。
我当然希望修复很快就会到来,但由于他们现在似乎把精力集中在SwiftUI上,这可能需要时间。
目前仅有的解决方法是:
abithluo3#
https://developer.apple.com/documentation/xcode-release-notes/xcode-15_0_1-release-notes
in xcode 15.0.1 -> Interface Builder Resolved Issues修复了使用自定义应用字体的Interface Builder文档在运行时加载不正确字体的问题。(116019276)