web-dev-qa-db-ja.com

UIBarButtonItem画像は青色のままで、画像の元の色ではありませんか?

アイコンinfo.pngが青色のままで、その画像の元の色が付いていないのはなぜですか?以下のコードを使用しています。

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"info.png"]
                                                                             style:UIBarButtonItemStylePlain
                                                                            target:self
                                                                            action:@selector(info:)];
27
Jan

デフォルトでは、UINavigationBarのバーボタン項目の画像は、テンプレートモードを使用してレンダリングされます。オリジナルに設定できます。

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"info.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
                                                                         style:UIBarButtonItemStylePlain
                                                                        target:self
                                                                        action:@selector(info:)];
53
Peter

スウィフト3:

    let image : UIImage? = UIImage.init(named: "heart.png")!.withRenderingMode(.alwaysOriginal)
17
selmad

アセットからもできます。 Assets.xcassetsに移動>>バーボタンアイテムの画像として使用されている画像を選択します。右側のパネルで属性インスペクターをタップします。元の画像に対してレンダリングを選択します。以前はデフォルトになります。カラー画像が表示されます。

7
Amrit Sidhu

私はこれがこの質問に答えるには遅すぎることを知っていますが、コードにいくつかの変更を加える代わりに、この問題を解決する非常に簡単な方法があると思います

xcodeを使用してAssets --Select Imageに移動します--- Render asをチェックして、デフォルトのプロパティの代わりにOriginal imageを選択します。

enter image description here

6
nivritgupta

Swift 2.1+の場合、次のようになります。

    let image : UIImage? = UIImage(named:"myImage.png")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

または単に

    let image : UIImage? = UIImage(named:"myImage.png")!.imageWithRenderingMode(.AlwaysOriginal)
6
jesses.co.tt

スウィフト4:

let image = UIImage(named: "imageName")?.withRenderingMode(.alwaysOriginal)
navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(leftBarButtonPressed))
4
choofie

アプリのbarButtonItemsの色は、アプリケーションのウィンドウのtintColorプロパティに関連しているためです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window.tintColor = [UIColor redColor];
    return YES;
}
2
carlodurso

わかりました、最初に画像を元の状態に設定しました。

UIImage *image = [[UIImage imageNamed:@"info.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithImage:image
                                                                             style:UIBarButtonItemStylePlain
                                                                            target:self
                                                                            action:@selector(info:)];
2
Jan

ストーリーボードからバーボタンアイテムのティントカラーを変更します。または、ストーリーボードの画像の色。

色は、hexまたはrgbとして期待される色である必要があります。

0
Sofeda