Ios 在Swift 4/Xcode 10.1中,如何在整个应用程序中使用自定义字体?

Ios 在Swift 4/Xcode 10.1中,如何在整个应用程序中使用自定义字体?,ios,swift,uilabel,Ios,Swift,Uilabel,我在这里尝试了一些为整个应用程序设置自定义字体的方法,但在Xcode 10.1中似乎没有一种方法可以工作。我想知道有没有人有什么建议 以下是我迄今为止所做的尝试 这是一个代码示例:(这仍然是给我的系统字体) 谢谢 您可以使用UIFont的扩展名执行此操作 extension UIFont { public enum FontWeight { //cases are just font family like bold, light, italic case .

我在这里尝试了一些为整个应用程序设置自定义字体的方法,但在Xcode 10.1中似乎没有一种方法可以工作。我想知道有没有人有什么建议

以下是我迄今为止所做的尝试

这是一个代码示例:(这仍然是给我的系统字体)


谢谢

您可以使用UIFont的扩展名执行此操作

extension UIFont {

   public enum FontWeight {
      //cases are just font family like bold, light, italic
      case .light
   }


   func appFont(weight : FontWeight, size : CGFloat) -> UIFont {
      var fontName = "Times New Roman-"
      switch weight {
         case .light {
             fontName = fontName + "light" // add your family name here
         }
      }
      return UIFont(name: fontName, size: size)!
    }
}
如果是标签

label.font = UIFont.appFont(weight : .light, size : 17)

您必须将第一个代码添加到AppDelegate.swift文件中,该文件位于``func应用程序(`application:UIApplication,didfishlaunchingwithoptions…``中,如果您使用的是最新的swift,请使用此行UILabel.appearance().font=UIFont.preferredFont(forTextStyle:UIFont.TextStyle(rawValue:“Times New Roman”))更好的解决方案是:@brontea交叉检查字体类型的字体名称,正确的一个您需要在这里给出的UIFont(名称:“Times New Roman”,大小:17)。我希望您在plist中添加了字体。@iOSTeam是的,我尝试将该行放入didFinishLaunchingWithOptions func中,但仍然没有结果。我将尝试您建议的答案有没有办法为所有UILabel设置该行?Thanks@brontea你可以将UILabel子类化,并在其中设置字体,在你的应用程序中使用该子类制作标签汉克斯!
label.font = UIFont.appFont(weight : .light, size : 17)