隐藏 UISlider 拇指图像

发布于 2024-11-02 21:42:19 字数 597 浏览 2 评论 0原文

我正在尝试创建一个没有拇指图像的 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];

I am trying to create a UISlider without the thumb image.

How can I do this, this is my code so far:

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];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

蓝海 2024-11-09 21:42:19

更简单:

Objc

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

Swift 版本

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

Much simpler:

Objc

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

Swift version

sli.setThumbImage(UIImage(), for: .normal)
述情 2024-11-09 21:42:19

最简单的方法就是在 Interface Builder 上将 Thumb Tint 颜色设置为 Clear - 就像这样...

在此处输入图像描述

瞧!

The easiest way is simply setting the Thumb Tint colour to Clear on the Interface Builder - like so...

enter image description here

Voila!

请爱~陌生人 2024-11-09 21:42:19

这是一个旧线程,但我发现了它,所以其他人也可以。

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

This is an old thread but I found it so someone else may as well.

Here's a solution to this in Swift. I'm creating a blank UIImage here programatically and then assigning it to the thumb.

    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()
回忆躺在深渊里 2024-11-09 21:42:19

一条线解决方案:

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

One line solution:

[_slider setThumbImage:[UIImage new] forState:UIControlStateNormal];
少女七分熟 2024-11-09 21:42:19

我会尝试子类化 UISlider 并覆盖 -thumbRectForBounds:trackRect:value: 以返回 NSZeroRect。如果这不起作用,请尝试覆盖 -thumbImageForState: 以返回 nil。

I'd try subclassing UISlider and override -thumbRectForBounds:trackRect:value: to return NSZeroRect. If that doesn't do it, try overriding -thumbImageForState: to return nil.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文