添加到主视图的子视图的尾随约束不会粘滞

时间:2016-06-08 02:21:54

标签: ios autolayout gradient

我有一个带有前导和尾随约束常量= 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)

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

Autolayout和自动调整大小屏幕在UIViews上不在CALayers上。

设置图层框后,autolayout可以更改视图框,但不能更改图层框。

我们需要手动更改图层框架

- (void) viewDidLayoutSubviews {
  [super viewDidLayoutSubviews];
  gradientLayer.frame = gradientView.bounds;
}