2

私は AppDelegate.m にこれを持っています:

// Change the appearance of back button
UIImage *backButtonImage = [[UIImage imageNamed:@"back"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 20, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setFont:[UIFont fontWithName:@"Raleway-ExtraLight" size:18]];

ビルドは成功しましたが、iPod で実行すると、デバッグ コンソールに次のエラー メッセージが表示されます。

2013-09-10 16:42:19.581 PushTransition[3599:907] -[_UIBarItemAppearance setFont:]: unrecognized selector sent to instance 0x1cda7100
2013-09-10 16:42:19.586 PushTransition[3599:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_UIBarItemAppearance setFont:]: unrecognized selector sent to instance 0x1cda7100'
*** First throw call stack:
(0x333602a3 0x3b04497f 0x33363e07 0x33362531 0x332b9f68 0x4ff27 0x351c8ad9 0x351c8663 0x351c084b 0x35168c39 0x351686cd 0x3516811b 0x36e6f5a3 0x36e6f1d3 0x33335173 0x33335117 0x33333f99 0x332a6ebd 0x332a6d49 0x351bf485 0x351bc301 0x4fced 0x3b47bb20)
libc++abi.dylib: terminate called throwing an exception
(lldb) 

これは、次のコード行が原因だと思います。

[[UIBarButtonItem appearance] setFont:[UIFont fontWithName:@"Raleway-ExtraLight" size:18]];

その行にコメントすると、エラーなしで完全に実行されるためです。ただし、navbar ボタンのフォントはデフォルトのフォントです。それをカスタマイズする方法?

ありがとうございました

4

3 に答える 3

6

次のようなことを試しましたか:

[[UIBarButtonItem appearance] setTitleTextAttributes:
    [NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"AmericanTypewriter" size:20.0],
        UITextAttributeFont,
        nil]
    forState:UIControlStateNormal];

これにより、シャドウなどの他の属性を編集することもできます。 この素晴らしいチュートリアルから

于 2013-09-10T09:49:36.500 に答える
1

これを試して

利用可能な UITextAttributes (NSDictionary に追加するだけです):

UITextAttributeFont: Change font with a UIFont
UITextAttributeTextColor: Change color with a UIColor
UITextAttributeShadowColor: Change shadow color with a UIColor
UITextAttributeShadowOffset: Change shadow offset with a UIOffset

 [[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Raleway-ExtraLight" size:18.0], UITextAttributeFont,nil] forState:UIControlStateNormal];
于 2013-09-10T10:26:30.547 に答える
0

Apple ドキュメントから:

フォント

タイトルのフォント。

(iOS 3.0 では非推奨。代わりに、textLabel および detailTextLabel プロパティに割り当てられた UILabel オブジェクトのフォントを設定します。)

@property(非アトミック、保持) UIFont *フォント

ただし、これを行うと役立ちます。

[buttonItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:@"Helvetica-Bold" size:26.0], UITextAttributeFont,nil] forState:UIControlStateNormal];
于 2013-09-10T09:49:21.260 に答える