うるおいらんど

アプリ開発やサイト制作のメモとか。

【Swift4】UINavigationControllerのToolbarをカスタマイズしてみた【高さ変更】

魚ライン
魚ライン

前回「【Swift4】UINavigationControllerのNavigationBarをカスタマイズしてみた。【高さ変更】」のおまけ!

 

どうも。Reoです。

昨日書いた記事のおまけでUINavigationControllerでツールバーをカスタマイズしたい時のやり方を書いていこうと思います。

細かいところは前回をみてね!今回は簡潔に!

今回の分もプッシュしておいたよ。uruly/CustomNavigationController-CustomNavigationBar

 

UIToolbarのカスタムクラスを作る

File > New > File より CocoaTouchClassを選択し、Subclass of:をUIToolbarにして作成。



作成したCustomToolbarの中にイニシャライザを書きます。

NavigationControllerのインスタンスを作る際にCustomToolbarを指定します。

前回の記事を読んでくれた人は、前回作ったCustomNavigationControllerで

とすればおkです。

 

デフォルトではToolbarは表示されないはずなのでNavigationController内で表示するようにしておきます。

場所は別にどこでも良いです。

自分は初期化時にツールバーのクラスがnilでなければ表示するようにしました。

コレで準備はおkです。

 

ツールバーの色を変えよう!

この辺はナビゲーションバーとほぼ一緒です〜。

他にも色々まとめて設定しておきます。

 

toolbarのアイテムの置き方は、UINavigationControllerのナビゲーションバーにアイテムを置くときと一緒です。

NavigationControllerの子ViewControllerの方に

という風にして書きます。

これもナビゲーションバーと同様に以下の書き方はできません。

ここも一度覚えてしまえばなんのこっちゃないですね。

 

ツールバーの高さを変えよう!

さて本題。ナビゲーションバーと同様に高さを変更します。

CustomToolbarでSizeThatFitsをoverrideします。

以上です。

 

(゚Д゚≡゚д゚)エッ!?

ナビゲーションバーではiPhoneXで場合分けして、セーフエリアを考慮して、サブビューを調整して、って面倒なことをイッパイしましたよね・・・?

でもツールバーはコレで完了です。



左からiPhone6(iOS10)、iPhone7(iOS11)、iPhoneX(iOS11)です。

全部ちゃんと同じ表示になっています。やったね。

 

ナビゲーションバーのバグが直ればツールバーと同じ記述量になるはずだと思っています。待ってればそのうち直るのかわからないですが、直ってくれると嬉しいです。

 

CustomToolbarの全文

 

前回のやつにコミットしておいたのナビゲーションバーと比べてみてくださいな。

uruly/CustomNavigationController-CustomNavigationBar

 

ではでは〜。

魚ライン
モッピー!お金がたまるポイントサイト
魚ライン

Swiftの記事一覧を見る

コメント

コメントは認証制です。詳しくは下記の注意をお読みください。

コメントを残す

コメント時の注意

「Twitter」「Facebook」「Google+」「WordPress」のいずれかのアカウントをお持ちの方は各アカウントと連携することでコメントできます。 コメントしたことはSNSに流れませんので、アカウントをお持ちの方はこちらの方法でコメントを投稿して下さると嬉しいです。 アカウントをお持ちでない方はメールアドレスで投稿することができます。 初回コメント時は承認後に表示されます。

魚ライン 魚ライン