2017-07-18 16 views
0

私はタブバーを持つiOSアプリケーション(Swift 3)を作っています。私は自分の好みの方法でパーソナライズする方法を見つけられません。私は、各アイコンの間に行を追加したいと私はこのように、選択されたとき、それは赤になりたい:UITabBarパーソナライズ、カラー、セパレータライン

UITabBar

答えて

1

カスタムUITabBarControllerから継承したクラス、そして、あなたのTabBarControllerのクラスとして使用します。主な手順は次のとおりです。

import UIKit 

class MainTabBarController: UITabBarController,UITabBarControllerDelegate { 

    var firstBackgroundView:UIView! 
    //var secondBackgroundView:UIView!   
    //...... 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     //Lines: 
     let topline = CALayer() 
     topline.frame = CGRect(x: 0, y: 0, width: self.tabBar.frame.width, height: 2) 
     topline.backgroundColor = UIColor.gray.cgColor 
     self.tabBar.layer.addSublayer(topline) 

     let firstVerticalLine = CALayer() 
     firstVerticalLine.frame = CGRect(x: self.tabBar.frame.width/5, y: 0, width: 2, height: self.tabBar.frame.height) 
     firstVerticalLine.backgroundColor = UIColor.gray.cgColor 
     self.tabBar.layer.addSublayer(firstVerticalLine) 

     //Continue to add other lines to divide tab items... 
     //...... 

     //Background views 
     firstBackgroundView = UIView(frame: CGRect(x: 0, y: 0, width: self.tabBar.frame.width/5, height: self.tabBar.frame.height)) 
     firstBackgroundView.backgroundColor = UIColor.red 
     firstBackgroundView.isHidden = false //true for others. 
     self.tabBar.addSubview(firstBackgroundView) 
     self.tabBar.sendSubview(toBack: firstBackgroundView) 

     //Continue to add other background views for each tab item... 
     //...... 


     self.delegate = self 
    } 

    public func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { 
     if self.selectedIndex == 0 { 
      firstBackgroundView.isHidden = false 
      //othersBackgroundView.isHidden = true 
     } 
     else if self.selectedIndex == 1 { 
      //...... 
     } 
    } 
} 
関連する問題