【发布时间】:2017-10-29 18:16:08
【问题描述】:
我将渐变(透明 - 黑色)应用于图像视图,在它上面我有一个浮动按钮。一切正常。唯一的问题是,每当点击浮动按钮时,渐变开始越来越多地增加到黑色。我的渐变从上到下清晰到黑色。但在互动时,它开始慢慢变黑。
我真的无法解决这个错误。
此图像视图位于 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)
}
【问题讨论】:
-
点击按钮时会调用什么代码?您是否不止一次致电
addBlackGradientLayerprof? -
是的!我不知道为什么,但由于某种原因,当视图加载以及关闭浮动按钮时,
layoutSubviews()会被调用两次。 -
@LeoDabus 那太完美了。问题已解决
-
@LeoDabus 这个问题不是重复的。这个问题的背景是找出为什么我有多层渐变而不是如何有渐变。答案确实给了我另一个解决我的问题的方法,它没有解决它。我要求您删除重复的标志,因为这会误导其他用户。
标签: ios swift uiimageview