2017-12-21 16 views
2

enter image description hereグラデーションないカバー画像は、iPhone上の3迅速IOSプラスデバイス

私は私の勾配を保持しているビューを作成しましたが、勾配が全体画像/ビューの上に適用されていません。この問題は、iPhoneとデバイスで通常観察されます。

import UIKit 

class MainViewController: UIViewController { 
    @IBOutlet weak var imageViewBanner: UIImageView! 
    @IBOutlet weak var viewGradient: UIView! 

    let color1 = UIColor(red: 48.0/255.0, green: 178.0/255.0, blue: 166.0/255.0, alpha: 1.0) 
    let color2 = UIColor(red: 82.0/255.0, green: 96.0/255.0, blue: 169.0/255.0, alpha: 1.0) 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.viewGradient.frame = self.viewGradient.bounds 
     let gradientLayer = CAGradientLayer() 
     gradientLayer.colors = [color1.cgColor, color2.cgColor] 
     gradientLayer.locations = [0.0 , 1.0] 
     gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0) 
     gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0) 
     gradientLayer.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: self.viewGradient.frame.size.height) 
     self.viewGradient.layer.insertSublayer(gradientLayer, at: 0) 
    } 
} 
+0

である私は、問題があると思いフレーム男性確認gradientLayer.frameを設定するあなたのと同じですviewgradientフレームprintfをしてください –

+0

viewDidLayoutSubviews()内のコードを実行しようとしました –

答えて

4
gradientLayer.frame = CGRect(x: 0.0, y: 0.0, width: self.view.frame.size.width, height: self.viewGradient.frame.size.height) 

ここviewDidLayoutSubviews

+0

それは魅力的なように働いてくれてありがとう:D –

1

に事の上に行う完全なコードコードスニペットは

override func viewDidLayoutSubviews() { 
    self.viewGradient.frame = self.viewGradient.bounds 
    let gradientLayer = CAGradientLayer() 
    gradientLayer.colors = [color1.cgColor, color2.cgColor] 
    gradientLayer.locations = [0.0 , 1.0] 
    gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0) 
    gradientLayer.endPoint = CGPoint(x: 1.0, y: 1.0) 
    gradientLayer.frame = CGRect(x: 0.0, y: 0.0, width: self.viewGradient.frame.size.width, height: self.viewGradient.frame.size.height) 
    self.viewGradient.layer.insertSublayer(gradientLayer, at: 0) 
}