9

UIBarButtonItem の画像を設定しようとしていますが、それを行うことができません。私は2回試しましたが、最初の場合は正しい場所に画像が表示されましたが、ボタンをクリックしても何も起こりません(新しいウィンドウがポップアップするはずですが、何も機能しません)。私が使用したコードがあります:

UIImage *faceImage = [UIImage imageNamed:@"plus_button.png"];
    UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom];
    face.bounds = CGRectMake( 0, 0, faceImage.size.width, faceImage.size.height );
    [face setImage:faceImage forState:UIControlStateNormal];
   UIBarButtonItem *faceBtn = [[[UIBarButtonItem alloc] initWithCustomView:face]initWithImage:faceImage style:UIBarButtonItemStylePlain target:self action:@selector(addProduct:)];

    self.navigationItem.leftBarButtonItem = faceBtn;

2番目のケースでは、ボタンに画像を設定すると、新しいウィンドウが表示されるはずですが、必要なカスタム画像だけでなく、「境界線」も表示され、画像がデフォルトボタンの中央に配置されたように見えます。明らかに、境界線ではなく、自分の画像だけが必要です。2番目のケースで使用したコードがあります:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithImage:faceImage style:UIBarStyleDefault target:self action:@selector(addProduct:)];

    self.navigationItem.leftBarButtonItem = addButton;

問題を解決するために私を助けてください、どんな助けでも感謝します、ありがとう!

4

5 に答える 5

9

これを試してください...あなたに応じて方法、画像を変更してください

UIButton *button1=[UIButton buttonWithType:UIButtonTypeCustom];
[button1 setFrame:CGRectMake(10.0, 2.0, 45.0, 40.0)];
[button1 addTarget:self action:@selector(showLeft:) forControlEvents:UIControlEventTouchUpInside];
[button1 setImage:[UIImage imageNamed:@"left-arrow-button.png"] forState:UIControlStateNormal];
UIBarButtonItem *button = [[UIBarButtonItem alloc]initWithCustomView:button1];
self.navigationItem.leftBarButtonItem = button;
于 2012-06-30T13:12:46.260 に答える
4

または... 2 行の iOS 8 Swift コードを記述するだけです。(iOS 7 でも動作する可能性があります)

    let doneButtonAsLeftArrow = UIBarButtonItem(image: UIImage(named: "LeftArrow24x24.png"), style: .Plain, target: self, action: "doneButtonPushed")
    navigationItem.leftBarButtonItem = doneButtonAsLeftArrow
于 2015-02-15T15:20:39.243 に答える
3

コードを修正し、バーボタンに表示される画像をテストしました。これは自分で試してみてください。また、これに関して問題が発生した場合はお知らせください。

    UIImage *faceImage = [UIImage imageNamed:@"Badge.png"];
    UIButton *face = [UIButton buttonWithType:UIButtonTypeCustom];
    face.bounds = CGRectMake( 0, 0, faceImage.size.width, faceImage.size.height );
    [face addTarget:self action:@selector(showAlerts) forControlEvents:UIControlEventTouchUpInside];
    [face setImage:faceImage forState:UIControlStateNormal];
    UIBarButtonItem *faceBtn = [[UIBarButtonItem alloc] initWithCustomView:face];    
    self.navigationItem.leftBarButtonItem = faceBtn;

編集:回答に行を追加しました。ログに「こんにちは」というメッセージを出力しました。それは働いています。試してみませんか?

ありがとう。

于 2012-06-30T12:32:02.093 に答える
0
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithImage:faceImage style: UIButtonTypeCustom target:self action:@selector(addProduct:)];

    self.navigationItem.leftBarButtonItem = addButton;

あなたはデフォルトのボタンを作成していましたが、UIButtonTypeCustomタイプボタンを作成する必要があります...

于 2012-06-30T12:33:06.513 に答える