我有一个渐变(清晰 - 黑色)应用于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)
}
答案 0 :(得分:1)
layoutSubviews
是做任何其他事情的好地方。它可以在视图的生命周期中多次调用。您不应该从layoutSubviews
添加图层。
您应该从保证在对象生命周期内只调用一次的地方调用addBlackGradientLayerprof
。 awakeFromNib
将是一个可能的地方。