ナビゲーションバーにアイコンとテキストの画像を表示する
iOSでナビゲーションバーにアイコン画像やテキストのボタンを表示させる場合、以下のように簡単に実装することができますが、標準にないパターンで使いたい場合にはカスタムビューを使うことになります。
カスタムビューというと結構面倒な実装になるイメージを持ってしまいますが、UIButtonをセットするなど工夫すると比較的容易に実装できるパターンもあるので、ご紹介したいと思います。
以下の2つはアイコンのボタン、テキストのボタンで、それぞれ標準の機能で対応できるパターンの例です。
let searchBarButtonItem = UIBarButtonItem(image: UIImage(named: "ico_search")!, style: .plain, target: self, action: #selector(didTapSearch))
navigationItem.rightBarButtonItem = searchBarButtonItem
let searchBarButtonItem = UIBarButtonItem(title: "検索", style: .plain, target: self, action: #selector(didTapSearch))
navigationItem.rightBarButtonItem = searchBarButtonItem
テキストとアイコン画像を両方表示させたい場合、カスタムビューを使うことになりますが、これくらいのことであればUIButtonで対応できます。
let button = UIButton(type: .system)
button.setTitle("検索", for: .normal)
button.setImage(UIImage(named: "ico_search")!, for: .normal)
let searchBarButtonItem = UIBarButtonItem(customView: button)
navigationItem.rightBarButtonItem = searchBarButtonItem
アイコンと画像を逆にしたい場合にも、UIButtonのsemanticContentAttributeをセットする事で対応できます。
semanticContentAttributeは文章の向きを設定するものですが、右から左に矯正することで、アイコンとテキストの位置を逆にすることができます。
let button = UIButton(type: .system)
button.semanticContentAttribute = .forceRightToLeft
button.setTitle("検索", for: .normal)
button.setImage(UIImage(named: "ico_search")!, for: .normal)
let searchBarButtonItem = UIBarButtonItem(customView: button)
navigationItem.rightBarButtonItem = searchBarButtonItem
Author And Source
この問題について(ナビゲーションバーにアイコンとテキストの画像を表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/iduchikun/items/7eafb7413fb85648fb2f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .