我必须在我的应用程序中添加自定义字体。我在我的项目中添加了字体并列出了infolist。
enum Proxima: String {
case regular = "Regular"
func font(size: CGFloat) -> UIFont {
return UIFont(name: "Proxima-\(rawValue)", size: size)!
}
}
致命错误:在调用时解包可选值时意外发现nil
self.headTitle.font = UIFont.Proxima.regular.font(size: 30)
UPDATE
我添加了目标,并检查了复制包资源都是正确的但仍然有同样的错误。
删除Regular for font,因为iOS使用默认字体作为常规尝试修改代码代码,之后它正常工作。
例如:
@IBOutlet weak var label1: UILabel!
enum OpenSans: String {
case regular = ""
case semiBold = "-Semibold"
func font(size: CGFloat) -> UIFont {
return UIFont(name: "OpenSans\(rawValue)", size: size)!
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib..
label1.font = OpenSans.regular.font(size: 30.0)
label1.font = OpenSans.semiBold.font(size: 30.0)
}
如果仍有问题请参考此演示项目
希望它会有所帮助。
运行以下代码以检查项目中的可用字体。
for fontFamilyName in UIFont.familyNames{
for fontName in UIFont.fontNames(forFamilyName: fontFamilyName){
print("Family: \(fontFamilyName) Font: \(fontName)")
}
}
查看控制台中的输出,此处打印所有可用字体,检查所提供字体的实际字体名称。
并使用UIFont(name: "FontName", size: 15)
的字体名称
试试这些
func printFonts() {
let fontFamilyNames = UIFont.familyNames
for familyName in fontFamilyNames {
print("------------------------------")
print("Font Family Name = [\(familyName)]")
let names = UIFont.fontNames(forFamilyName: familyName)
print("Font Names = [\(names)]")
}
}