0

iOS 7 用のアプリケーションの UI をカスタマイズしようとしています。正確に iOS 7 の BackBarButton が必要ですが、矢印とタイトルの両方の色が異なり、タイトルのフォントが異なります。これはiOS 7の戻るボタンです。

iOS 7 の BackBarButton

次のコードでカスタマイズしようとしました

    UIImage *backButtonImage = [UIImage imageNamed:@"back.png"];
    UIButton *customBackButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [customBackButton addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
    [customBackButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];
    [customBackButton setFrame:CGRectMake(0, 0, 30, 30)];       
    backButton = [[UIBarButtonItem alloc] initWithCustomView:customBackButton];
    [backButton setAction:@selector(backButtonPressed)];
    UIBarButtonItem * backButton = [[UIBarButtonItem alloc] initWithCustomView:customBackButton];

次のように見えました。

カスタマイズされた BackBarButton

上記の画像には2つの問題があります。

まず、左に配置されていません(iOSの戻るボタンが左にくっついています)。

次に、前のページのタイトルがありません。

カスタム ボタンに title 属性を追加しました。

    [customBackButton setTitle:@"title" forState:UIControlStateNormal];

しかし、それは次のようでした:

カスタマイズされた backBarButton とそのタイトル

問題を解決するにはどうすればよいですか (左とタイトルに固執する)?

4

2 に答える 2

0

このためには、矢印とタイトルを含むカスタム イメージが必要です。タイトルをカスタマイズしたい場合は、以下のコードを使用できます>

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"My Title" style:UIBarButtonItemStylePlain target:nil action:nil];

ただし、画像に設定する場合は、画像の左側に戻るボタンがある画像が必要です。

画像:ここに画像の説明を入力

2x 画像:ここに画像の説明を入力

エディタで画像を見ると、画像サイズが 70x32 で、矢印が左端に向かっていることがわかります。テキスト付きの画像を作成して使用することもできます。

それが役立つことを願っています。

于 2014-01-16T07:52:41.780 に答える
0

私はちょうどそれが可能であることを知りました

次のコードを書きましたが、完全に機能しました!

UIBarButtonItem * backButton = [UIBarButtonItem new];
UIView * backButtonView = [UIView new];
[backButtonView setFrame:CGRectMake(0, 0, 90, 32)];

UIImageView *backButtonImage = [UIImageView new];
[backButtonImage setImage:[UIImage imageNamed:@"Setting/back.png"]];
[backButtonImage setFrame:CGRectMake(-15, 0, 30, 30)];

UILabel * backButtonLabel = [UILabel new];
[backButtonLabel setFrame:CGRectMake(8, 0, backButtonView.frame.size.width, 30)];
[backButtonLabel setBackgroundColor:[UIColor clearColor]];
[backButtonLabel setTextColor:[UIColor whiteColor]];
[backButtonLabel setTextAlignment:NSTextAlignmentLeft];
[backButtonLabel setFont:[UIFont fontWithName:@"HelveticaNeue" size:18]];
[backButtonLabel setText:title];

UIButton *customBackButton = [UIButton buttonWithType:UIButtonTypeCustom];
[customBackButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
[customBackButton setFrame:CGRectMake(0, 0, 90, 30)];

[backButtonView addSubview:customBackButton];
[backButtonView addSubview:backButtonImage];
[backButtonView addSubview:backButtonLabel];

backButton = [[UIBarButtonItem alloc] initWithCustomView:backButtonView];
[backButton setAction:action];
[self.navigationItem setLeftBarButtonItem:backButton animated:YES];
于 2014-01-21T07:31:14.407 に答える