3

在这里我需要圆滑的滑块但是当我尝试设置图像时它显示矩形图像,

我需要这样的图片在此处输入图像描述

这里我的编码

UIImage *volumeBackgroundImage = [[UIImage imageNamed:@"l2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)];
    [self.audioSlider setMinimumTrackImage:[[UIImage imageNamed:@"l1.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)]
                               forState:UIControlStateNormal];
    [self.audioSlider setMaximumTrackImage:volumeBackgroundImage
                               forState:UIControlStateNormal];
    [self.audioSlider setThumbImage:[UIImage imageNamed:@"sliderhandle.png"]
                        forState:UIControlStateNormal];

任何人都可以帮助实现这一目标

4

3 回答 3

4

你需要有圆角的图像。例如: 在此处输入图像描述

然后像这样简单地使用这个图像:

[_slider setMinimumTrackImage:[[UIImage imageNamed:@"black_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12)]
    forState:UIControlStateNormal];

[_slider setMaximumTrackImage:[[UIImage imageNamed:@"blue_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12) 
    forState:UIControlStateNormal];

(其中 black_dot.png 是示例图像,而 blue_dot.png 将相同但为蓝色)

(如果图像是像素化的-那么您需要将此图像放大两倍-视网膜图像- black_dot@2x.png

(或者如果您实际上需要比给定示例更小的图像,则只需将此图像重命名为black_dot@2x.png, 而不是 : UIEdgeInsetsMake(12, 12, 12, 12) 使用: UIEdgeInsetsMake(6, 6, 6, 6)

在此处查看更多信息:https ://stackoverflow.com/a/8656216/894671

于 2013-10-05T10:45:04.703 回答
1

您可以尝试绘制所需大小的图像,而不是添加可能导致失真的图像。

滑块变形解决方案

于 2019-01-21T03:37:16.797 回答
0

我认为这是因为圆端是由 UISlider 本机生成的。它假定拇指图像将覆盖极端位置的末端,因此不会重绘它。

一种解决方案可能是自己处理最后的舍入:

self.audioSlider.layer.cornerRadius = 5.0;

尝试使用此值,它应该可以工作。

或者,您可以确保您的图像具有圆形末端。

于 2013-10-05T10:11:01.127 回答