梯度不覆盖全帧SWIFT

问题描述:

我有以下扩展imageView梯度不覆盖全帧SWIFT

extension UIImageView { 
func addBlackGradientLayer(frame: CGRect){ 
    let gradient = CAGradientLayer() 
    gradient.frame = frame 
    gradient.colors = [UIColor.clear.cgColor, UIColor.black.cgColor] 
    gradient.locations = [0.0, 1.0] 
    self.layer.addSublayer(gradient) 
}} 

imageView.addBlackGradientLayer(frame: imageView.frame) 

上应用这种至ImageView的,我有下面的输出。我尝试设置约束和自动布局。

以下是执行后的输出:

enter image description here

+0

这是有道理的离开downvote原因,否则其一个愚蠢的举动 –

你需要调用

imageView.addBlackGradientLayer(frame: imageView.bounds) 

参见:Cocoa: What's the difference between the frame and the bounds?

+0

嘿,我已经试过了。那么,如果我在iPhone模拟器7+上运行这个,它会显示这个问题。当我在6s和7+设备上运行渐变时,渐变可以正常显示。它可以是一个模拟器的问题? –

+0

我无法在7+模拟器上重现您的错误。 –

+0

也许您的视图在应用渐变图层后调整大小。我建议在添加图层并在视图显示之后检查框架。 –