向UIImageView添加渐变

问题描述

我正在尝试向UIImageView添加渐变。

viewDidLoad() {
    self.bookImageBig.sd_setImage(with: URL(string: self.book.image),placeholderImage: nil)
    self.bookImage.sd_setImage(with: URL(string: self.book.image),placeholderImage: nil)
    
    let view = UIView(frame: bookImageBig.frame)

    let gradient = CAGradientLayer()
    gradient.frame = view.frame
    gradient.colors = [UIColor.clear.cgColor,UIColor.black.cgColor]
    gradient.locations = [0.0,1.0]
    view.layer.insertSublayer(gradient,at: 0)
    bookImageBig.addSubview(view)
    bookImageBig.bringSubviewToFront(view)
    

我正在尝试为bookImageBig UIImageView添加渐变。

但是,渐变仅部分覆盖了图像。渐变不覆盖图像的30px。该图像已添加到故事板上,并在视图控制器中被引用。 有人可以帮忙吗?

解决方法

代替边框使用范围

gradient.frame = self.bookImageBig.bounds

有关边框和边界的差异,请查看此post

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...