UISlider设置渐变背景

2021-01-18  本文已影响0人  方_f666
private var gradientView = ColorGradientView()

        voiceAdjustView.insertSubview(gradientView, belowSubview: voiceLevelSlider)
        gradientView.snp.makeConstraints { (make) in
            make.width.equalTo(voiceLevelSlider)
            make.height.equalTo(4)
            make.centerX.equalTo(voiceLevelSlider)
            make.centerY.equalTo(voiceLevelSlider)
        }
        gradientView.gradientColors = [UIColor(hexString: "83B5FF"),.COLOR_4C7EFF]
        gradientView.direction = .LeftToRight
        gradientView.layer.cornerRadius = 4 / 2
        gradientView.layer.masksToBounds = true

        voiceLevelSlider.addTarget(self, action: #selector(sliderChangeGradientColor), for: .valueChanged)

    @objc private func sliderChangeGradientColor() {
        let targetWidth = (voiceLevelSlider.width - 9) / 15 * CGFloat(Int(ceilf(voiceLevelSlider.value)))
        gradientView.snp.remakeConstraints { (make) in
            make.width.equalTo(targetWidth)
            make.height.equalTo(3)
            make.left.equalTo(voiceLevelSlider)
            make.centerY.equalTo(voiceLevelSlider).offset(0.5)
        }
        gradientView.gradientColors = [UIColor(hexString: "83B5FF"),.COLOR_4C7EFF]
        gradientView.direction = .LeftToRight
        gradientView.layer.cornerRadius = 4 / 2
        gradientView.layer.masksToBounds = true
        gradientView.layoutIfNeeded()
        gradientView.setNeedsLayout()
    }

上一篇 下一篇

猜你喜欢

热点阅读