我有UIView
作为UIViewController
背景的渐变。渐变代码位于drawRect
的{{1}}中(如下所示)。该渐变视图通过自动布局连接到UIView
视图(约束如下所示)。
渐变在纵向和横向都能正确显示,但在旋转期间,白色背景非常清晰可见(视角在转弯处,在角落里)并且非常刺耳。< / p>
问题:如何在旋转过程中保持渐变?
渐变代码(在我的子类UIViewController
中):
UIView
约束代码(在 override func drawRect(rect: CGRect) {
gradient.frame = self.bounds
gradient.opacity = 0.5
gradient.colors = colors
self.layer.insertSublayer(gradient, atIndex: 0)
}
的{{1}}中):
viewDidLoad
答案 0 :(得分:-1)
问题在于你对这个渐变的整个方法是错误的。你做了两件不该做的事情:
您将渐变添加为图层。调整视图大小时,不会自动调整图层大小。但旋转后视图 调整大小;这就是轮换的全部内容。
您在drawRect:
中添加了一个图层。这是疯狂的,因为那不是drawRect:
应该做的事情,也因为它被称为很多次,所以你最终可以结束。
相反,将渐变绘制到UIImage中,只需让self.view
成为(或包含)显示渐变图像的UIImageView。那个渐变会和其他一切一起旋转,一切都会很好。