图像视图渐变行为异常



我有渐变(透明 - 黑色)应用于图像视图,在它上面我有一个浮动按钮。一切正常。唯一的问题是,每当点击浮动按钮时,渐变就会开始越来越多地增加到黑色。我的渐变从上到下都是黑色的。但在互动中,它开始慢慢变黑,走向上行。

我真的无法解决这个错误。

此图像视图位于 UIcollectionResuableView 中。下面是下面的代码。

func addBlackGradientLayerprof(frame: CGRect){
    let gradient = CAGradientLayer()
    gradient.frame = frame
    let black = UIColor.init(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.65).cgColor
    gradient.colors = [UIColor.clear.cgColor, black]
    gradient.locations = [0.0, 1.0]
    self.layer.addSublayer(gradient)
}

带有浮动按钮的标题视图:

override func layoutSubviews() {
    super.layoutSubviews()
    profilePic.addBlackGradientLayerprof(frame: profilePic.bounds)
}
override func awakeFromNib() {
    super.awakeFromNib()
    layoutFAB()
}
func layoutFAB() {
    floaty.openAnimationType = .slideDown
    floaty.addItem("New Post", icon: UIImage(named: "photo-camera")) { item in
        self.delegate.fabUploadClicked()
    }
    floaty.addItem("Settings", icon: UIImage(named: "settingsB")) { item in
        self.delegate.fabSettingsClicked()
    }
    floaty.paddingY = (frame.height - 30) - floaty.frame.height/2
    floaty.fabDelegate = self
    floaty.buttonColor = UIColor.white
    floaty.hasShadow = true
    floaty.size = 45
    addSubview(floaty)

}

>除了根据需要调整几帧之外,layoutSubviews做任何事情都是不好的地方。它可以在视图的生命周期中多次调用。不应从 layoutSubviews 添加图层。

应从保证在对象的生存期内仅调用一次的位置调用addBlackGradientLayerprofawakeFromNib将是一个可能的地方。

最新更新