【发布时间】:2015-07-01 21:38:27
【问题描述】:
设置:
我有一个View Controller,它由一个View 和一个Container View 组成。
View(橙色)是pinned 到top 0、left 0 和right 0。
Container View(灰色)是pinned 到bottom 0、left 0 和right 0。
View 的Bottom Space to: Container View = 0
View 的 Proportional Height to Container 查看 = 1
期望的结果:
我想为View(橙色)的背景添加渐变
试过了:
我正在使用具有班级大小的自动布局来在不同的屏幕上获得不同的行为。
代码:
class ViewController: UIViewController {
@IBOutlet weak var graphView: UIView!
@IBOutlet weak var containerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let backgroundColor = CAGradientLayer().graphViewBackgroundColor()
backgroundColor.frame = self.graphView.frame
self.graphView.layer.addSublayer(backgroundColor)
}
我有一个类别:
extension CAGradientLayer {
func graphViewBackgroundColor() -> CAGradientLayer {
let topColor = UIColor(red: (160/255.0), green: (160/255.0), blue: (160/255.0), alpha: 1)
let bottomColor = UIColor(red: (52/255.0), green: (53/255.0), blue: (52/255.0), alpha: 1)
let gradientColors: [CGColor] = [topColor.CGColor, bottomColor.CGColor]
let gradientLocations: [Float] = [0.0, 1.0]
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.colors = gradientColors
gradientLayer.locations = gradientLocations
return gradientLayer
}
}
结果:
如您所见,渐变并未覆盖整个View。
问题:如何让渐变覆盖整个View
更新:
当我将代码放在viewDidLayoutSubviews() 时,旋转时看起来很奇怪:
【问题讨论】:
标签: swift ios8 autolayout gradient