2

このコードを使用して、すべての UIBarButtonItems のデフォルト フォント (カスタム) を設定しています。

NSDictionary *attributesBarButtonItem = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"ProximaNova-Light" size:18.0], NSFontAttributeName, nil];
[[UIBarButtonItem appearance] setTitleTextAttributes:attributesBarButtonItem forState:UIControlStateNormal];

NSLog(@"%@", [[UIBarButtonItem appearance] titleTextAttributesForState:UIControlStateNormal]);

ただし、フォントは変わらず、NSLogは(null)を返すので無視されているようです。すべてのナビゲーション バーのデフォルト フォントを設定するために使用しているコードとほぼ同じで、正常に動作するため、少し混乱します。

コードの一部はAppDelegateのdidFinishLaunchingWithOptionsに配置されていますが、まったく同じ結果で他のviewControllers(viewDidLoad)でもテストしました。

私が気づいた他の奇妙な動作: タブ バー コントローラーを持っています。バー ボタン アイテムを含む viewController を読み込んでも機能しませんが、別の viewController を押すと機能します (フォントは選択したものに変更されます)。 )、そのviewControllerがポップアウトされても機能し続けますが、別のタブが押されると機能しなくなります.

UIBarButtonItems のデフォルト フォントを設定するための助けをいただければ幸いです。ありがとう!

4

2 に答える 2

2

これはカスタム フォントですか?

いくつかの問題が発生する可能性があります:

  • フォントはTTF形式ですか?
  • xcode でフォントをクリックすると、右側のパネルのターゲット メンバーシップがチェックされますか?
  • プロジェクトの plist ファイルにフォントを追加しましたか? ここに画像の説明を入力

また、辞書でUITextAttributeFontを使用する必要があります。

[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeFont:[UIFont fontWithName:@"ProximaNova-Light" size:18.0]} [forState:forState:UIControlStateNormal];
于 2013-11-08T16:08:22.573 に答える