Оператор Switch работает, но не сбрасывает цвета фона представления и т. Д.
У меня есть UIImage
(значок) и UIButton
, встроенные в UIView
(пользовательского типа DropShadowCircleView
)как показано на рисунке ниже.
При нажатии на кнопку ходьбы для шага var navigationOption
устанавливается на walking
или driving
и 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)
}