1

アプリのナビゲーション バーにカスタムの戻るボタンを設定しようとしています。現在、このコードを使用してそれを実行しています:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[UIImage imageNamed:@"backbutton.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

これは私のイメージを歪め、引き延ばしてしまいます。また、その上にテキストを追加します。この画像だけが表示されるようにするにはどうすればよいですか?

ここに画像があります: http://thai-flashcards.info/images/arrow-blue-rounded-left.jpg?1303347394

4

2 に答える 2

2

あなたが探しているのは、伸縮可能な画像です。

これで整理できます:

http://idevrecipes.com/2010/12/08/stretchable-images-and-buttons/

編集:あなたの画像を見ると、うまくいかないと思います。

カスタム UIButton を作成し、戻るボタンをそのカスタム ボタンに設定し、ViewController ポップを自分で処理する必要があります。

このようにボタンを作成/設定します。

UIImage *buttonImage = [UIImage imageNamed:@"mybuttonimage.png"];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
[doneButton addTarget:self action:@selector(goBack)forControlEvents:UIControlEventTouchUpInside];

[doneButton setImage:buttonImage forState:UIControlStateNormal];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithCustomView:doneButton];

    self.navigationItem.leftBarButtonItem = backButton;

そして、メソッドを goBack に追加する必要があります

-(void)goBack { // Go Back

    [self.navigationController popToViewController:
    [self.navigationController.viewControllers objectAtIndex:3] animated:YES];
}
于 2013-03-27T23:21:19.840 に答える
2

didFinishLaunchingWithOptions の下にAppDelegateを追加します。

UIImage *backBtnIcon = [UIImage imageNamed:@"back.png"];
UIImage *backButtonImage = [backBtnIcon resizableImageWithCapInsets:UIEdgeInsetsMake(0, backBtnIcon.size.width - 1, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault ];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -30) forBarMetrics:UIBarMetricsDefault];
于 2014-03-25T09:33:37.047 に答える