隐藏UISlider thumb image

max*_*ax_ 25 iphone objective-c uislider

我试图创建一个没有拇指图像的UISlider.

我怎么能这样做,这是我的代码到目前为止:

UISlider *sli = [[UISlider alloc] initWithFrame:progressView.frame];
    [sli setThumbImage:nil forState:UIControlStateNormal];
    [sli setBackgroundColor:[UIColor clearColor]];

    [sli setMinimumTrackImage:[[UIImage imageNamed:@"ProgressBlueCap.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
    [sli setMaximumTrackImage:[[UIImage imageNamed:@"ProgressBlueCapRight.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

jak*_*xer 55

更简单:

Objc

[sli setThumbImage:[[[UIImage alloc] init] autorelease] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)

Swift版本

sli.setThumbImage(UIImage(), for: .normal)
Run Code Online (Sandbox Code Playgroud)


Jim*_*ney 13

最简单的办法,就是设定拇指色调的颜色来清除在界面生成器-像这样...

在此输入图像描述

瞧!

  • 这个解决方案的缺点是滑块仍然认为它有一个大约40px宽的拇指,所以当你一直向左/向右拖动时,仍有一些轨道在被绘制时有色/无色在拇指后面. (4认同)

all*_*ate 9

这是一个老线程,但我发现它也可能是其他人.

这是Swift中的解决方案.我在这里以编程方式创建一个空白UIImage,然后将其分配给拇指.

    let rect = CGRect(x: 0, y: 0, width: 1, height: 1)
    UIGraphicsBeginImageContextWithOptions(CGSize(width: 1, height: 1), false, 0)
    UIColor.clear.setFill()
    UIRectFill(rect)
    if let blankImg = UIGraphicsGetImageFromCurrentImageContext() {
        slider.setThumbImage(blankImg, for: .normal)
    }
    UIGraphicsEndImageContext()
Run Code Online (Sandbox Code Playgroud)