拖出滑块时 UISlider 选定的拇指图像不会保留

问题描述

我的滑块有两个拇指图像,设置方式如下:

seeker.setThumbImage(UIImage(named: "seeker-thumb-normal"),for: .normal)
seeker.setThumbImage(UIImage(named: "seeker-thumb-selected"),for: .highlighted)

这似乎工作得很好,除了当我开始拖动 UiSlider 并将我的手指从滑块移开足够远时,滑块将拇指图像恢复为 .normal,即使我仍在跟踪。如何在整个跟踪事件期间保留选定的拇指图像?谢谢

解决方法

尝试子类化 UISlider 并覆盖 trackRect(forBounds

class YourSlider: UISlider {
    override func trackRect(forBounds bounds: CGRect) -> CGRect {
        let point = CGPoint(x: bounds.minX,y: bounds.midY)
        return CGRect(origin: point,size: CGSize(width: Your image width,height: your image height))
    }
}

并在您的代码中使用 YourSlider 的实例而不是 UISlider。想法无耻地从这个medium article所有学分复制给作者