2017-03-25 6 views
1

カスタムフォントでラベルのフォントを変更したいが、コンパイラが問題を起こしている: オプティナル値のアンラッピング中に予期せずnilが見つかりました。 この問題は、Xcodeが自分のフォントファイルBrandon_reg.otfを認識しないことが原因であると思います。私は何を間違えたのですか?遊び場をダウンロード:https://ufile.io/940ccXcodeプレイグラウンドでのカスタムフォントの実装方法

import UIKit 
import PlaygroundSupport 

var view = UIView(frame: UIScreen.main.bounds) 

let fontURL = Bundle.main.url(forResource: "Brandon_reg", withExtension: "otf") 
CTFontManagerRegisterFontsForURL(fontURL! as CFURL, CTFontManagerScope.process, nil) 
var font = UIFont(name: "horrendo", size: 30) 
var attrs = [NSFontAttributeName : font!, 
      NSForegroundColorAttributeName : UIColor.white, 
      NSBaselineOffsetAttributeName : 0.0] as [String : Any] 
let nameAttrSring = NSAttributedString(string: "Brandon_reg", attributes: attrs) 

let mainLabel: UILabel = { 
    let label = UILabel() 
    label.font = font 
    label.textColor = .white 
    label.translatesAutoresizingMaskIntoConstraints = false 
    label.textAlignment = .center 
    label.numberOfLines = 0 
    return label 
}() 

view.addSubview(mainLabel) 
PlaygroundPage.current.liveView = view 
PlaygroundPage.current.needsIndefiniteExecution = true 
+0

あなたのResourcesフォルダに.otfファイルはありますか?どのラインを正確にエラーにしますか? –

+0

コメントいただきありがとうございます@ LouFranco。 .otfファイルはResourcesフォルダ内にあります(その名前もコード内の名前と完全に一致します)。私はこの行でエラーを受け取ります: 'CTFontManagerRegisterFontsForURL(fontURL!as CFURL、CTFontManagerScope.process、nil)'。 –

+0

私はあなたがその行に問題を起こしているとは思わない。 'let fontUrl ='行の右側には、 'file://' URLが表示されています。 –

答えて

2

あなたのフォントファイルは、その中に「horrendo」という名前のフォントを持っていません。これは私のために働きます:

var font = UIFont(name: "Brandon Grotesque", size: 30) 
関連する問題