2016-03-03 155 views
1

我已將子類型TabBarController設置爲漸變背景。但它似乎並不奏效。沒有顯示。我是通過使用Hue框架tabBar中的漸變背景

let tabBarGradient = [UIColor.redColor(), UIColor.blackColor()].gradient { gradient in 
     gradient.frame = self.tabBar.frame 
     gradient.startPoint = CGPointMake(0,0.5) 
     gradient.endPoint = CGPointMake(1,0.5) 

     return gradient 
    } 

    self.tabBar.layer.addSublayer(tabBarGradient) 
+0

沒有我不忘記設置的顏色? –

回答

5

在CustomTabBarController的方式,寫這樣的代碼:

import UIKit 

class GradientTabBarController: UITabBarController { 

    let layerGradient = CAGradientLayer() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     layerGradient.colors = [UIColor.redColor().CGColor, UIColor.yellowColor().CGColor] 
     layerGradient.startPoint = CGPoint(x: 0, y: 0.5) 
     layerGradient.endPoint = CGPoint(x: 1, y: 0.5) 
     layerGradient.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height) 
     self.tabBar.layer.addSublayer(layerGradient) 
    } 
} 

你可以看到梯度你的TabBar這樣的:

enter image description here

而故事板則將CustomTabBarController分配給故事板中的TabBarController。

enter image description here

1

要擴大Khuong的答案,因爲它使用的是view.Frame設置寬度和高度爲layerGradient.Frame上面不會使用Y梯度工作。 view是容器視圖,並且大於標籤欄。相反設定時,layerGradient.Frame使用tabBar.Frame

layerGradient.frame = CGRect(x: 0, y: 0, width: tabBar.bounds.width,height: tabBar.bounds.height)