10

UIAppearance を使用して UIBarButtonItems をカスタマイズしていますが、戻るボタンのテキストのスタイルを変更する方法がわかりません。これはどのように行われますか?

背景画像を設定する方法を知っています:

[[UIBarButtonItem appearance]
   setBackButtonBackgroundImage:[UIImage imageNamed:@"arrow-button-static.png"]
   forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

  [[UIBarButtonItem appearance]
   setBackButtonBackgroundImage:[UIImage imageNamed:@"arrow-button-pressed.png"]
   forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
4

4 に答える 4

23

[戻る] ボタンのみのテキスト属性を変更することはできません。(または、少なくとも、外観プロキシを使用してグローバルに行うことはできません。) Apple は、そのテキストがナビゲーション バーの他のボタンのテキストと一致することを意図しているようです。形状 (背景画像) のみが異なります。

@DhruvGoel が指摘しているように、次のようにテキスト属性を設定できます。

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                       [UIColor redColor],UITextAttributeTextColor,
                                       nil];

[[UIBarButtonItem appearance] setTitleTextAttributes:attributes                   
                          forState:UIControlStateNormal];

または、ナビゲーション バーのバー ボタンのみ:

    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
            setTitleTextAttributes:attributes                   
                          forState:UIControlStateNormal];

ビュー/ビュー コントローラー階層の特定の部分で外観をカスタマイズする方法の詳細については、UIAppearanceプロトコル ドキュメントを参照してください。既に述べたように、これにより、[戻る] ボタンのテキストを、同じナビゲーション バー内の他のボタンのテキストとはグローバルに異なるものにすることはできません。(View Controller が表示されるたびにそれぞれを直接変更することもできますが、それはおそらく良い考えではありません。)

ああ、弾劾の件で申し訳ありません。

于 2013-03-25T02:52:09.390 に答える
9

戻るボタンの項目のテキストの色を変更するには、次のように使用できます。

NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                           [UIColor redColor],UITextAttributeTextColor,
                                           nil];

[[UIBarButtonItem appearance] setTitleTextAttributes:attributes                   
                              forState:UIControlStateNormal];

UIStringDrawing.h にあるキー、つまり UITextAttributeFont、UITextAttributeTextColor、UITextAttributeTextShadowColor、および UITextAttributeTextShadowOffset を使用して、タイトルのフォント、テキストの色、テキストの影の色、およびテキストの影のオフセットをテキスト属性ディクショナリで指定できます。

これはiOS 5.0以降のみであることに注意してください

于 2013-02-04T18:47:59.400 に答える
1

UIButton を使用して、バック バー ボタン項目をカスタマイズできます。

UIButton *backButton = [[UIButton alloc] initWithFrame:frame];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:backButton];
backButton.titleLabel.shadowColor = [UIColor blackColor];
backButton.titleLabel.shadowOffset = CGSizeMake(0, 1);
backButton.titleLabel.textColor = [UIColor whiteColor];

[self.navigationItem setLeftBarButtonItem:backBarButton];
于 2013-07-19T09:27:51.247 に答える