我的观点在 iphone 5 和 iphone 6 上看起来不同,即使它有限制 - 这里有什么问题?
my view looks different on iphone 5 and iphone 6 even though it has constraints - what is wrong here?
在我的 swift
应用程序中,我正在对我的视图应用渐变。我使用以下代码来完成:
@IBOutlet weak var gradientView: UIView!
override func viewDidLoad(){
super.viewDidLoad()
let layer = CAGradientLayer()
layer.frame = CGRect(x: 0, y: 0, width: self.gradientView.frame.width, height: self.gradientView.frame.height)
layer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(layer)
}
在我的故事板中,gradientView
是黑色的:
它的约束是:
所以它接触到每一侧的边缘,顶部和底部的白色面板。
当我在 iphone5 模拟器中 运行 它时,我有:
没关系。但是当我 运行 它在 iphone 6 秒时,我看到:
这里有什么问题,因为应用了约束?
问题是您的 gradientView
的框架尚未在 viewDidLoad
中更新。试试这个:
let gradientLayer = CAGradientLayer()
override func viewDidLoad(){
super.viewDidLoad()
gradientLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(gradientLayer)
}
override func viewDidLayoutSubviews(){
super.viewDidLayoutSubviews()
gradientLayer.frame = gradientView.bounds
}
在我的 swift
应用程序中,我正在对我的视图应用渐变。我使用以下代码来完成:
@IBOutlet weak var gradientView: UIView!
override func viewDidLoad(){
super.viewDidLoad()
let layer = CAGradientLayer()
layer.frame = CGRect(x: 0, y: 0, width: self.gradientView.frame.width, height: self.gradientView.frame.height)
layer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(layer)
}
在我的故事板中,gradientView
是黑色的:
它的约束是:
所以它接触到每一侧的边缘,顶部和底部的白色面板。
当我在 iphone5 模拟器中 运行 它时,我有:
没关系。但是当我 运行 它在 iphone 6 秒时,我看到:
这里有什么问题,因为应用了约束?
问题是您的 gradientView
的框架尚未在 viewDidLoad
中更新。试试这个:
let gradientLayer = CAGradientLayer()
override func viewDidLoad(){
super.viewDidLoad()
gradientLayer.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
gradientView.layer.addSublayer(gradientLayer)
}
override func viewDidLayoutSubviews(){
super.viewDidLayoutSubviews()
gradientLayer.frame = gradientView.bounds
}