这里我需要舍入uslider,但是当我尝试设置图像时,它会显示矩形图像,
我需要这张图片
这是我的编码
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];
任何人都可以帮助实现这个目标
答案 0 :(得分: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)
)
答案 1 :(得分:1)
您可以尝试绘制所需大小的图像,而不是添加可能导致变形的图像。
答案 2 :(得分:-1)
我认为这是因为圆形末端是由UISlider原生生成的。它假定拇指图像将覆盖极端位置的末端,因此不会重绘它。
一种解决方案可能是自己处理最终的舍入:
self.audioSlider.layer.cornerRadius = 5.0;
尝试使用此值,它应该可以正常工作。
或者,您可以确保图像具有圆形末端。