2017-08-22 18 views
4

私はタブバーのコントローラーで透明度の低い背景を持つようにしようとしています。半透明ですので、これをプログラムでやってみようとしていますが、背景が正しい色に変わります。しかし、透明性はなく、常に堅実に見えます。ここでタブバーの背景の透明度を変更する

は私のTabBarViewControllerのコード

class TabBarViewController: UITabBarController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.tabBar.unselectedItemTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.4) 
     self.tabBar.barTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.5) 


     // Do any additional setup after loading the view. 
    } 
} 

答えて

1

だけbackgroundColorbarTintColorを交換です。そのような場合のために

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.tabBar.unselectedItemTintColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.4) 
    self.tabBar.backgroundColor = UIColor(red: 17.0/255.0, green: 70.0/255.0, blue: 95.0/255.0, alpha: 0.5) 
     // Do any additional setup after loading the view. 
} 

enter image description here

+0

こんにちは、お答えいただきありがとうございますが、まだソリッドカラーを表示しています –

1

、あなたはタブバーbackgroundimageプロパティにカスタマイズされたUIImageを生成する必要があります。

のは、カスタムUITabBarControllerに実装することができ、黒色であるtransparent-する必要があります - つまり、あなたのタブバーのためにご希望のカラーと仮定しましょう:

class TabBarViewController: UITabBarController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let transperentBlackColor = UIColor(displayP3Red: 0, green: 0, blue: 0, alpha: 0.5) 

     let rect = CGRect(x: 0, y: 0, width: 1, height: 1) 
     UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0) 
     transperentBlackColor.setFill() 
     UIRectFill(rect) 

     if let image = UIGraphicsGetImageFromCurrentImageContext() { 
      tabBar.backgroundImage = image 
     } 

     UIGraphicsEndImageContext() 
    } 
} 

ので、出力として、我々は、背景と仮定した場合あなたのビューコントローラの色は青で、それが必要に次のようになります。

enter image description here

示すように、タブバーは、純粋に黒ではない予想通り、それは透明性(0.5)が含まれています。

また、UIImageの単色を生成する方法を確認するには、このSOの答え:Create UIImage with solid color in Swiftをチェックしてください。

関連する問題