2016-07-13 93 views
1

我在視圖中添加了一個漸變圖層,在縱向模式下它的工作非常完美。漸變層在橫向模式下不起作用。 Swift

enter image description here

enter image description here

func createGredientBackground() { 

    let layer = CAGradientLayer() 
    let center = UIColor(red: 249/255, green: 150/255, blue: 107/255, alpha: 1).CGColor 
    let end = UIColor(red: 247/255, green: 93/255, blue: 89/255, alpha: 1).CGColor 
    let start = UIColor(red: 255/255, green: 229/255, blue: 180/255, alpha: 1).CGColor 

    layer.colors = [start, center,end] 
    layer.frame = self.view.bounds //self.view.frame 
    print(layer.frame) 
    layer.startPoint = CGPointMake(0.0, 0.5) 
    layer.endPoint = CGPointMake(1.0, 0.5) 

    self.view.layer.insertSublayer(layer, atIndex: 0) 

} 

感謝。

回答

5

子層不會自動調整大小以適應觀點:當視圖得到它的佈局傳遞你應該更新他們:

func viewWillLayoutSubviews() { 
    super.viewWillLayoutSubviews() 
    gradientLayer.frame = view.layer.bounds 
} 

沒有嘗試,所以也許你也應該嘗試與viewDidLayoutSubviews代替。

+0

賓果!工作很好,謝謝。 –

+0

我會接受,它顯示我可以在7分鐘後接受這個答案... –

+0

我有同樣的問題。但更新它們後的漸變是完全不同的。這是爲什麼? –