自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?

Posted

技术标签:

【中文标题】自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?【英文标题】:Customizing UISlider thumb icon: How to stop thumb icon from reverting back to default circle icon when drag? 【发布时间】:2015-12-17 22:58:27 【问题描述】:

我想将 UISlider 的拇指自定义为我制作的矩形图标。我已经设法做到了。问题是当我拖动 UISlider 时,它会变回默认的圆形图标。

如何设置拇指图像,使其即使在拖动时也始终保持为自定义矩形图标?

我已经详细说明了我的代码并包含了一个链接,因此您可以在下面看到我在说什么。

class DrawViewController: UIViewController     
    var heightSlider: UISlider = UISlider()        
    var fontColor: UIColor = UIColor(red:0.91, green:0.91, blue:0.91, alpha:1.0)
    var barButtonColor: UIColor = UIColor(red:0.03, green:0.25, blue:0.51, alpha:1.0)

    override func viewDidLoad() 
        super.viewDidLoad()

        heightSlider = UISlider(frame: CGRectMake(0, 20, 98, 31))
        heightSlider.minimumTrackTintColor = barButtonColor
        heightSlider.maximumTrackTintColor = fontColor
        heightSlider.thumbTintColor = barButtonColor
        heightSlider.setThumbImage(UIImage(named: "blueSliderThumbHeight")!, forState: .Normal)

        self.view.addSubview(heightSlider)
     

To see my app/what I'm talking about

【问题讨论】:

奇怪,基本上这段代码应该可以运行.....你为什么没有这样的出口:'@IBOutlet weak var progressSlider: UISlider!' 代码运行。滑块确实显示自定义矩形拇指图标。但是当我拖动滑块时,拇指图标会变回默认的圆形图标。我没有插座 b/c 我正在以编程方式创建滑块。 【参考方案1】:

我只需要删除heightSlider.thumbTintColor = barButtonColor这一行

class DrawViewController: UIViewController     
    var heightSlider: UISlider = UISlider()        
    var fontColor: UIColor = UIColor(red:0.91, green:0.91, blue:0.91, alpha:1.0)
    var barButtonColor: UIColor = UIColor(red:0.03, green:0.25, blue:0.51, alpha:1.0)

    override func viewDidLoad() 
        super.viewDidLoad()

        heightSlider = UISlider(frame: CGRectMake(0, 20, 98, 31))
        heightSlider.minimumTrackTintColor = barButtonColor
        heightSlider.maximumTrackTintColor = fontColor
        heightSlider.thumbTintColor = barButtonColor //delete this line!
        heightSlider.setThumbImage(UIImage(named: "blueSliderThumbHeight")!, forState: .Normal)

        self.view.addSubview(heightSlider)
     

【讨论】:

以上是关于自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?的主要内容,如果未能解决你的问题,请参考以下文章

UISlider 自定义图像和拇指高度?

如何保持 UISlider 拇指小但分辨率更高的照片?

调整 UISlider 拇指图像

UISlider 拇指图像像素化

在 UISlider 中增加拇指“点击区域”

如何以编程方式更改 UISlider 拇指图像的大小