ImageView Gradient行为异常

时间:2017-10-29 18:16:09

标签: ios swift uiimageview

我有一个渐变(清晰 - 黑色)应用于imageview,在它上面我有一个浮动按钮。一切正常。唯一的问题是,每当浮动按钮上点击时,渐变开始越来越多地变黑。我的渐变从上到下都是黑色。但是在相互作用方面,它开始慢慢向上看。

我真的无法解决此错误。

此图像视图位于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)


}

1 个答案:

答案 0 :(得分:1)

除了根据需要调整几帧外,

layoutSubviews是做任何其他事情的好地方。它可以在视图的生命周期中多次调用。您不应该从layoutSubviews添加图层。

您应该从保证在对象生命周期内只调用一次的地方调用addBlackGradientLayerprofawakeFromNib将是一个可能的地方。