17

UINavigationBar の戻るボタンをこの画像に設定したい:

ここに画像の説明を入力

画像を標準の戻るボタンの画像に埋め込んだくないので、この画像を表示したいだけです。

私は使用できる他の質問を見て知っています:

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:barButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

戻るボタンの背景画像を設定します。しかし、これにより画像が引き伸ばされます。この特定の画像は、私が知る限り、引き伸ばすのに適していません。

戻るボタンの画像を自分の画像に置き換える方法はありますか?

iOS 5.0 以降をサポートしています。

4

4 に答える 4

5

UIBarButtonItem setBackButtonBackgroundImage:forState:barMetrics:のドキュメントから:

良い結果を得るには、backgroundImage は伸縮可能な画像である必要があります。

だから、伸縮性を持たせてください。つまり、画像のどの部分を引き伸ばすことができるかを指定し、さらに重要なことに、どの部分を引き伸ばすことができないかを指定します。あなたの場合、これは画像の端(矢印を含まない部分)になります。

UIImage resizableImageWithCapInsets:

別の方法は、スケーリングする必要がないことを意味するサイズの多数の画像 (バー メトリックごとに 1 つ) を提供することです。 raywenderlich ユーザー インターフェイスのカスタマイズ. ただし、何が起こるかを制御できるように、画像を伸縮可能にしたい場合もあります。

機能するストレッチ スペックが見つからない場合、代替手段として、各ビュー コントローラーのインスタンスごとにテンプレートの戻るボタン アイテムを作成し、backBarButtonItemそれをナビゲーション アイテムの として設定します。

于 2013-04-27T16:46:53.320 に答える
0

スイフト 3 の場合

ViewDidLoad にこれを貼り付けます

let backBtn = UIBarButtonItem()
let image: UIImage = UIImage(named: "your_image_name")!
backBtn.image = image
backBtn.action = #selector(popSelf)
backBtn.target = self
navigationItem.leftBarButtonItem = backBtn

次の関数を作成し、

func popSelf() {
    navigationController?.popViewController(animated: true)
    // do your stuff if you needed
}
于 2016-10-18T10:40:54.487 に答える