読者です 読者をやめる 読者になる 読者になる

そーす

福岡在住のプログラマ

UITabBarに独自ボタンを追加する

iOS Swift

f:id:saburesan:20160427075732p:plain

TabにタブUITabBarItemじゃないViewを追加したいってことありますよね。 ↓のような

Before

f:id:saburesan:20160519213234p:plain

After

f:id:saburesan:20160519213331p:plain

実装

実装は簡単です。 UITabBarはUIViewのサブラクスでそれぞれのタブも単なるViewですので、リサイズして再配置すればいいだけです。

    func relayoutTabView() {
        let cameraTab = createCameraTab() //追加するView
        tabBar.insertSubview(cameraTab, atIndex: 2) //追加する場所
        let width = tabBar.frame.width / CGFloat(tabBar.subviews.count) // 1つのタブの横幅
        let height = tabBar.frame.height //1つのタブの縦幅
        var left = tabBar.snp_left //制約を追加するときの左隣の情報
        for view in tabBar.subviews { // 1つずつ新たに制約を追加していく
            view.snp_makeConstraints(closure: { (make) in
                make.height.equalTo(height)
                make.width.equalTo(width)
                make.top.equalTo(tabBar)
                make.left.equalTo(left)
            })
            left = view.snp_right
        }
    }

以上。