Swift day-by-day と custom fonts でxcodeにカスタムフォントを追加する手順を実行しましたが、そのフォントをアプリのラベルに設定できませんプログラム的に。
var labeladd = UILabel(frame: CGRectMake(40, 50, 70, 22))
// label.center = CGPointMake(160, 284)
/// labeladd.font=UIFont.boldSystemFontOfSize(15)
labeladd.font = UIFont(name:"Source Sans Pro",size:15)
labeladd.textColor=UIColor.blackColor()
labeladd.textAlignment = NSTextAlignment.Center
labeladd.text = "this is custom fonts"
myview.addSubview(labeladd)
このフォントを追加したいとしましょう:_SourceSansPro-Regular.otf
_
3つのステップ:
SourceSansPro-Regular.otf
_をプロジェクトに追加します。必ず、[ターゲットに追加]でターゲットを選択してください。ターゲットのビルドフェーズに移動し、それがバンドルリソースのコピーの下にあることを確認します。そうでない場合は、追加します。
2。ターゲットのInfoに移動します。新しいエントリを追加アプリケーションによって提供されるフォント次に、この値_SourceSansPro-Regular.otf
_で新しいアイテムを追加します。
3。 OS X Font Bookアプリケーションを開き、フォントに移動してCommand + iを押します。 PostScript名を書き留め、その名前をSwiftコードで使用します。この場合は_SourceSansPro-Regular
_です。
コードで:
labeladd.font = UIFont(name:"SourceSansPro-Regular", size:15)
フォントの名前がファイルの名前ではない場合があります。私は "NexaBook"という名前のNexaBook.otfフォントを使用しようとしていましたが、最終的には、フォントの正しい名前が "Nexa-Book"であることが問題でした。正しい名前を使用していることを確認するには、viewDidLoadに次のコードを記述し、フォントの名前を確認します。
for family: String in UIFont.familyNames
{
print(family)
for names: String in UIFont.fontNames(forFamilyName: family)
{
print("== \(names)")
}
}
私の場合、私は得ました:
...
Nexa
== Nexa-Book
Avenir Next
== AvenirNext-Medium
== AvenirNext-DemiBoldItalic
== AvenirNext-DemiBold
...
私はこのアイデアを カスタムフォントをiOSアプリに追加する際のよくある間違い から得ています。カスタムフォントの使用に関する問題についての素晴らしい説明があります。
フレームワーク内にカスタムフォントを追加する場合は、使用する前に、アプリデリゲートにフォントを手動で読み込む必要があります。
ストーリーボードにはあるがフォントファミリーにはないフォントを取得していて、それをプログラムで設定できない場合は、Xcodeがフォントをコンパイルしていない可能性があることが原因です。それを解決するには: