gpt4 book ai didi

swift - 为什么 UIViews 背景颜色没有更新?

转载 作者:行者123 更新时间:2023-11-30 11:29:33 25 4
gpt4 key购买 nike

Switch 语句有效,但不会重置 View 背景颜色等。

我有一个 UIImage (图标)和一个 UIButton 嵌入在 UIView (自定义类型 DropShadowCircleView )如下图所示。

buttons

点击步行按钮时,var navigationOption 将设置为 步行驾驶 以及 setupNavigationSelectionView() > 已执行。

问题是:开关的“步行”情况下工作正常,但“驾驶”情况下不会重置 UIView 和图标颜色恢复到原来的设置,例如;背景颜色等...有什么想法吗?

func setupNavigationSelectionView(){

switch navigationOption {

case "walking":
walkingBg.setGradientBackground(colourOne: softGreen, ColourTwo: softBlue)
walkingBg.layer.cornerRadius = walkingBg.frame.width / 2
walkingBg.clipsToBounds = true
walkingIcon.tintColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)

case "driving":
walkingBg.backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
walkingBg.layer.cornerRadius = walkingBg.frame.width / 2
walkingBg.clipsToBounds = true
walkingIcon.tintColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)

default:
break

}
}

编辑:这是我的DropShadowCircleView

class DropShadowCircleView: UIView {

override func awakeFromNib() {

setupView()
super.awakeFromNib()

}

func setupView(){
self.layer.shadowOpacity = 0.50
self.layer.shadowRadius = 20
self.layer.shadowColor = UIColor.black.cgColor
self.layer.cornerRadius = self.frame.width / 2


}

}

编辑:这是我的setGradientBackground函数,它位于UIView

的扩展文件中
func setGradientBackground(colourOne: UIColor, ColourTwo: UIColor) {

let gradientLayer = CAGradientLayer()
gradientLayer.frame = bounds
gradientLayer.colors = [colourOne.cgColor, ColourTwo.cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 1.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 0.0, y: 0.0)

layer.insertSublayer(gradientLayer, at: 0)
}

最佳答案

重置图标时,您需要删除渐变层。

将此添加到您的扩展 UIView:

func removeGradientBackground() {
guard
let idx = layer.sublayers?.index(where: { $0 is CAGradientLayer })
else { return }

layer.sublayers?.remove(at: idx)
}

并在重置图标时调用它。

关于swift - 为什么 UIViews 背景颜色没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50391029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com