梯度不覆盖全帧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的,我有下面的输出。我尝试设置约束和自动布局。
以下是执行后的输出:
你需要调用
imageView.addBlackGradientLayer(frame: imageView.bounds)
参见:Cocoa: What's the difference between the frame and the bounds?
嘿,我已经试过了。那么,如果我在iPhone模拟器7+上运行这个,它会显示这个问题。当我在6s和7+设备上运行渐变时,渐变可以正常显示。它可以是一个模拟器的问题? –
我无法在7+模拟器上重现您的错误。 –
也许您的视图在应用渐变图层后调整大小。我建议在添加图层并在视图显示之后检查框架。 –
这是有道理的离开downvote原因,否则其一个愚蠢的举动 –