我有一个带有前导和尾随约束常量= 20的视图到superview。我试图在该视图中添加渐变图层,但它只绘制宽度为560,这是故事板中的宽度(活动大小类)
看起来跟踪约束并不是因为视图帧大小是768而应该是iPad。我也没有出现自动布局错误,当我将背景颜色设置为清除以外的其他颜色时,它看起来还不错,但渐变仍未完全绘制。
任何想法??
func setupGradient(view: UIView) {
let colorArray = [UIColor.blackColor().CGColor, UIColor.whiteColor().CGColor]
let gradient: CAGradientLayer = CAGradientLayer()
gradient.frame = view.bounds
print(gradient.frame)
print(self.view.bounds)
gradient.startPoint = CGPoint(x: 0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
gradient.colors = colorArray
view.layer.addSublayer(gradient)
}
来自print statement: (0.0,0.0,560.0,70.0) (0.0,0.0,768.0,1024.0)
答案 0 :(得分:0)
Autolayout和自动调整大小屏幕在UIViews
上不在CALayers
上。
设置图层框后,autolayout可以更改视图框,但不能更改图层框。
我们需要手动更改图层框架
- (void) viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
gradientLayer.frame = gradientView.bounds;
}