概要
デフォルトのmusicアプリのように、tabbarの上部にviewを追加してごにょごにょできるライブラリを探していたら、あったのでその紹介とその使い方について紹介。
実例
今回の要件は下記のようなもの
- タブバーアプリで動作する。
- 再生部分のビューをタブバーのすぐ上に配置する。
- タブを切り替えてもそのビューはタブバーに属したものとして表示される
要は、iOSデフォルトの音楽アプリのような挙動を目指した。
実装後は下のGIFのようになる。
#### 使い方
下記のコードをタブバー内の任意のViewController内で実行すれば良い。
customBarViewController
に設定するViewControllerはLNPopupCustomBarViewController
を継承している必要がある。
example
let player:PlayerVC = PlayerVC()
tabBarController?.popupBar.customBarViewController = player
tabBarController?.popupBar.barStyle = .prominent
tabBarController?.presentPopupBar(withContentViewController: UIViewController(), animated: true, completion: nil)
デフォルトでは、tabbarの直上に出るバーに対してタップなどを行うとpresentPopupBar
に指定したViewControllerを表示するようになっている。
そういった動作を抑制したい時は、customBarViewController
に設定したViewControllerにてwantsDefaultTapGestureRecognizer
プロパティをfalseにすればよい。