如何在拇指位置提取uislider渐变颜色?

问题描述 投票:0回答:1
func setSliderGradient() {
        let minTrackStartColor = UIColor(red:111/255, green: 111/255, blue: 111/255, alpha: 1.0)
        let maxTrackColor = UIColor(red: 222/255, green: 222/255, blue: 222/255, alpha: 1.0)
        do {
            bottomNavBar.slider.setMinimumTrackImage(try bottomNavBar.gradientImage(
                size: CGSize(width: bottomNavBar.slider.frame.width, height: 2),
            colorSet: [minTrackStartColor.cgColor, maxTrackColor.cgColor]),
                                  for: .normal)
            bottomNavBar.slider.setMaximumTrackImage(try bottomNavBar.gradientImage(
                size: CGSize(width: bottomNavBar.slider.frame.width, height: 2),
            colorSet: [minTrackStartColor.cgColor, maxTrackColor.cgColor]),
                                  for: .normal)

            let track = UIView(frame: CGRect(x: 0, y: 0, width: 19, height: 10))
            track.backgroundColor = UIColor(red: 222/255, green: 222/255, blue: 222/255, alpha: 1)
            track.layer.cornerRadius = 5
            bottomNavBar.slider.setThumbImage(track.asImage(), for: .normal)
        } catch {
            bottomNavBar.slider.minimumTrackTintColor = minTrackStartColor
            bottomNavBar.slider.maximumTrackTintColor = maxTrackColor
        }
    }

在uislider中,将greadient设置为上述代码。

我想根据拇指的移动为该位置的拇指着色。

如何在拇指位置提取uislider渐变颜色?

swift gradient uislider
1个回答
0
投票

尝试创建渐变图层并根据您当前的滑块值更新startPointendPointlocation

let gradientLayer = CAGradientLayer()
gradientLayer.colors = [colorStart.cgColor, colorEnd.cgColor]
gradientLayer.startPoint = CGPoint(x: 0.5, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 0.0)
gradientLayer.locations = [0, 1]
gradientLayer.frame = bounds
© www.soinside.com 2019 - 2024. All rights reserved.