IOSアプリケーションでカスタムフォント(Bebas Neue)を使用しようとしています。私が行った手順は次のとおりです。
私が使用したコード:
for name in UIFont.familyNames() {
println(name)
if let nameString = name as? String
{
println(UIFont.fontNamesForFamilyName(nameString))
}
}
私が使用したコード:
textLabel?.font = UIFont(name: "BebasNeueRegular", size: 14)
スクリーンショット:
以下の手順を試してください:Swift 3
でテストされたコード。
ステップ1:カスタムフォントをプロジェクトに追加します((ターゲットに追加 -)チェックマークが付いています。「PermanentMarker.ttf」、「Pecita.otf」および「AROLY.ttf」フォントをテストフォントとして使用しています。
注:サポートフォントタイプttfおよびotf(両方のフォントタイプが機能するはずです)
ステップ2:application-info.plistファイルを変更します。キー「アプリケーションが提供するフォント」を新しい行に追加し、「PermanentMarker.ttf」を配列の新しいアイテムとして追加します。「アプリケーションが提供するフォント」 。
plistは次のようになります
これで、Interface Builderでフォントが利用可能になります。コードでカスタムフォントを使用するには、名前で参照する必要がありますが、多くの場合、名前はフォントのファイル名と同じではありません
これで、viewControllerからカスタムフォントにアクセスできます。以下のようにUIラベルをStoryboardに配置して、フォントをテストしています。
更新2:Working Solution
その後、カスタムフォントをインポートし、plist
、goto Attributes Inspector
under label
> Text type
>からstoryBoard
。select Label
を更新しましたAttributed
を選択し、リストからcustom font
を選択します。
出力:
アップデート1
それでもカスタムフォントがXcode font list
にリストされない場合は、問題への関連リンクを確認してください
注:それでも、ラベルまたはボタンなどにプログラムでBebasNeue
またはcustom font
を割り当てることができます。 interface Builder
。プログラムでオブジェクトにフォントを設定できない場合は、以下の方法を試してください。
フォントをUILabelに割り当てます。
label?.font = UIFont(name: "BebasNeue", size: 35) // Set to any size
フォントをUIButtonに割り当てます。
button.titleLabel?.font = UIFont(name: "BebasNeue", size: 35)
UITextFieldにフォントを割り当てます。
textField.font = UIFont(name: "BebasNeue", size: 25)
UINavigationBarにフォントを割り当てます。
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "BebasNeue", size: 25)!, NSForegroundColorAttributeName: UIColor.red]
UIToolBarにフォントを割り当てます。
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "BebasNeue", size: 25.0)!], for: UIControlState.normal)
出力:
同じフォント(Bebas Neue)を使用すると、まったく同じ問題が発生します。フォントはPlain
コントロールのフォントリストに表示されません。
Joesの投稿のUpdate 2で説明されているように、Attributed
コントロールに対して行いますが、実際には、通常のattributedText
の代わりにtext
を変更します。動作。たとえば、実行時にテキストまたはテキストの色を変更するには、NSMutableAttributedString
をいじる必要があります。
この問題について調査を行いました。 FontLab Studio を使用してフォントを変更し、いくつかのテストを行いました。 dafont.comのBebas Neueバージョン1.400(2014年9月15日付け) を使用しました。
次に、名前をBebas Neue Whateverに変更しました:それは動作します。
私はこれがなぜ起こっているのか本当に理解していません。 AppleまたはXcodeでは、Interface Builderで「Bebas Neue」または「BebasNeue」を使用したいですか?通常のBebas Neueをインストールしました。参照が破損した可能性がありますか?たぶん、Bebas NeueがXcodeで動作する場合、クリーンシステムの誰かが試すことができます。
とにかく、Plain
スタイルのラベルとボタンにBebas Neue(最終バージョンを "Bebas Neue MyAppName"と名付けました)を使用できるので、目標を達成しました。属性付き文字列をいじる必要があります。
Xcodeにフォントを追加する手順
UILabel、UITextField、またはフォントセクションの下にあるものを選択して、
ステップ1
フォント選択画面の左隅から設定メニューを選択します。そして、フォントマネージャオプションを選択します。
ステップ2
以下のマークのある追加ボタンをクリックします。
ステップ3
フォントを含むフォルダーを選択します。 XCodeフォントリストに読み込まれます。
プロジェクトにフォントを追加する手順
キーFonts provided by application
を使用してplistに説明を追加し、プロジェクトターゲット設定でコピーバンドルリソース内にフォントファイルを配置することを忘れないでください。
はい!それは..njoy ..
フォルダー名とフォント名には違いがあるかもしれません。ソリューションは次のようになります。
その後、フォント名を比較します。
func printFontsNames() {
let fontFamilyNames = UIFont.familyNames
for familyName in fontFamilyNames {
print("------------------------------")
print("Font Family Name = [\(familyName)]")
let names = UIFont.fontNames(forFamilyName: familyName )
print("Font Names = [\(names)]")
}
}
実際には、属性付きフォントに移動して、カスタムフォントウィンドウをクリックするだけです。そこで左上の歯車をクリックし、フォントの管理オプションをクリックします。ウィンドウがポップアップして上部に表示され、フォントを追加できるようにプラス記号が表示されます。 xyz.tffのようにダウンロードしたカスタムフォントを選択するだけで、追加する必要があります。
重要なのは、ttfファイルはプロジェクトディレクトリと同様にp-listでも参照する必要があるということです!
これは、それを引き起こすような変更を加えなくても、Swift 4.2の場合、私にとっては繰り返し発生する問題です。
Xcodeプロジェクトからフォントファイルを削除して再度追加すると、問題が修正されます(次回まで)。
同様の問題がありました
カスタムフォントを追加し、UILabel
にも割り当てます。すべて正常に動作しますが、数回後、期待どおりに動作しません。
すべてのソリューションを試してみましたが、何もうまくいきません。だからここに私の解決策があり、前のUILabel
(既に新しく追加されたカスタムフォントがあります)に移動しますselect-> label-> select新しく追加されたフォント。他のUIコントロールのフォントを確認してください。
今では正常に動作しています。
これがnewDevsに役立つことを願っています...