隐藏UISlider thumb image

时间:2011-04-22 16:04:24

标签: 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];

5 个答案:

答案 0 :(得分:55)

更简单:

Objc

[sli setThumbImage:[[[UIImage alloc] init] autorelease] forState:UIControlStateNormal];

Swift版

sli.setThumbImage(UIImage(), for: .normal)

答案 1 :(得分:13)

最简单的 方式只是在界面生成器上将Thumb Tint颜色设置为清除 - 就像这样......

enter image description here

瞧!

答案 2 :(得分:7)

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

这是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()

答案 3 :(得分:1)

一线解决方案:

[_slider setThumbImage:[UIImage new] forState:UIControlStateNormal];

答案 4 :(得分:0)

我尝试继承UISlider并覆盖-thumbRectForBounds:trackRect:value:以返回NSZeroRect。如果不这样做,请尝试覆盖-thumbImageForState:以返回nil。