6409


ナビゲーションバーの右端にアイコンのように画像を貼り付けたいです。  
今考えられる実現方法としては、iPhoneアプリのアイコンに使用する  
画像をボタンとして下記のコードに組み込むことです。

[code]

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // ナビゲーションバー右端にボタンの追加及び設定
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [button setImage:[UIImage imageNamed:@"Icon-Small@2x.png"] forState:UIControlStateNormal];
        [button sizeToFit];
        [button addTarget:self action:@selector(hoge) forControlEvents:UIControlEventTouchUpInside];
        self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button]; //右側に設定する場合
    
        button.enabled = NO; // disableに設定。これで押せなくなる。
    }
    
[/code]

画像（ボタンとしてですが）が追加され、ボタンとしての挙動もしなくなりましたが、  
enabledにした為にアイコン画像が半透明になってしまいました。  
ボタンとしての挙動をさせず、かつ、アイコン画像を半透明にしない方法を  
ご教示いただけないでしょうか。以上、何卒よろしくお願いいたします。


CC BY-SA 3.0
2015-02-12T15:51:49.100
6403
2015-02-12T23:50:55.460
7470
question
objective-c ios8 iphone
ナビゲーションバーに画像をボタンとして追加し、動作させないまま半透明にもしない方法

[code]

    buton.adjustsImageWhenDisabled = NO; // デフォルトはYES
    
[/code]

を利用することで、ボタンを無効にしたときに自動的に画像の色が調整されるのを抑制できます。

[UIButton Class
Reference](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIButton_Class/index.html#//apple_ref/occ/instp/UIButton/adjustsImageWhenDisabled)も参照してみてください。


CC BY-SA 3.0
2015-02-12T16:06:48.430
6404
2015-02-12T16:19:44.880
2015-02-12T16:19:44.880
5337
5337
6403
answer

[code]

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // ナビゲーションバー右端にボタンの追加及び設定
        UIImage *anImage = [UIImage imageNamed:@"Icon-Small@2x.png"];
        UIImageView *imageView = [[UIImageView alloc] initWithImage: anImage];
        self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: imageView]; //右側に設定する場合
    }
    
[/code]

わざわざボタンを持ってくることはないと思います。ご確認ください。  
ただ、ナビゲーションバーにある「なにか」をタップしても、なにも起こらないというのは、ユーザインターフェイスとしては、まずいと思うのですが、いかがですか？自己満足なアプリ、ユーザに不親切なアプリは、Appleの審査でリジェクトされる可能性があります。


CC BY-SA 3.0
2015-02-12T19:06:07.993
6409
2015-02-12T23:50:55.460
2015-02-12T23:50:55.460
7362
7362
6403
answer