ios - 表示されない - uibarbuttonitem action 呼ばれない




ナビゲーションバーのボタン項目swiftの画像 (2)

このコードを使用します:

self.navigationItem.leftBarButtonItem = nil

let button = UIButton(type: .custom)
button.setImage(UIImage (named: "ChatTab"), for: .normal)
button.frame = CGRect(x: 0.0, y: 0.0, width: 35.0, height: 35.0)
//button.addTarget(target, action: nil, for: .touchUpInside)
let barButtonItem = UIBarButtonItem(customView: button)

let button2 = UIButton(type: .custom)
button2.setImage(UIImage (named: "ActivityTab"), for: .normal)
button2.frame = CGRect(x: 0.0, y: 0.0, width: 35.0, height: 35.0)
//button.addTarget(target, action: nil, for: .touchUpInside)

let barButtonItem2 = UIBarButtonItem(customView: button2)
self.navigationItem.rightBarButtonItems = [barButtonItem, barButtonItem2]

出力:

私は迅速に私のナビゲーションバーの左側に画像を表示したい。

私は、ナビゲーションバーのボタン項目を追加し、そこに画像を設定しようとしました。

問題は、Navバーにうまく収まるように、実際に小さな画像を使用する必要があることです。 しかし、このような小さな画像を作成すると、特に大きなiPhone 6と6 Plusの電話ではピクセル化につながります。

良い品質の画像を使用し、フレームをナビゲーションバーの境界内に収まるように設定する方法はありますか?

私の試み:

var image = UIImage(named: "Harp.png")

image = image?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: image, style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
self.navigationItem.leftBarButtonItem.frame = CGRectMake(0, 0, 53, 31)
//image.frame = CGRectMake(0, 0, 53, 31)

私は最初に画像の上にフレームを置いてから、次にボタンのボタンの項目に入れてみました。 しかし、これはエラーを投げている:

より多くの文脈がなければ、表現のタイプは曖昧です。


これを試して

let button = UIButton(type: UIButtonType.Custom)
button.setImage(UIImage(named: "yourImageName.png"), forState: UIControlState.Normal)
button.addTarget(self, action:Selector("callMethod"), forControlEvents: UIControlEvents.TouchDragInside)
button.frame=CGRectMake(0, 0, 30, 30)
let barButton = UIBarButtonItem(customView: button)
self.navigationItem.leftBarButtonItems = [newBackButton,barButton]

スウィフト3

let button = UIButton.init(type: .custom)
button.setImage(UIImage.init(named: "yourImageName.png"), for: UIControlState.normal)
button.addTarget(self, action:#selector(ViewController.callMethod), for:.touchUpInside)
button.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30) //CGRectMake(0, 0, 30, 30)
let barButton = UIBarButtonItem.init(customView: button)
            self.navigationItem.leftBarButtonItem = barButton

ここに行動がある

func callMethod() {
//do stuff here
}




uibarbuttonitem