【发布时间】:2019-04-06 21:09:08
【问题描述】:
我正在尝试将UIView 的背景设置为渐变。我的UIViewController 的viewDidLoad 方法中有以下内容:
let gradientLayer = CAGradientLayer()
gradientLayer.colors = [UIColor.blue70.cgColor, UIColor.blue60.cgColor, UIColor.blue70.cgColor]
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 1, y: 1 )
gradientLayer.frame = self.view.bounds
self.view.layer.insertSublayer(gradientLayer, at: 0)
渐变按预期呈现。但是,当我旋转设备时,渐变不会重绘并且不再正确渲染。从纵向->横向旋转会在右侧或左侧留下空白部分。从横向->纵向旋转使我在底部有一个空白部分。我尝试将此代码移动到viewDidLayoutSubviews,但这并没有解决它。关于如何实现这一点的任何建议?
【问题讨论】:
-
您的主要问题是您在视图底部添加了多个渐变层,但只有顶部的一个可见。您需要确保只添加一个渐变层并在 viewDidLayoutSubviews 方法
gradientLayer.frame = view.bounds中调整其框架