Ios 带角点的UISlider集图像
在这里,我需要使用圆角U滑块,但当我尝试设置图像时,它会显示矩形图像 我需要像这样的图像 这是我的代码Ios 带角点的UISlider集图像,ios,objective-c,uislider,Ios,Objective C,Uislider,在这里,我需要使用圆角U滑块,但当我尝试设置图像时,它会显示矩形图像 我需要像这样的图像 这是我的代码 UIImage *volumeBackgroundImage = [[UIImage imageNamed:@"l2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)]; [self.audioSlider setMinimumTrackImage:[[UIImage imageNamed:@"l1.png"]
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];
有谁能帮助实现这一点我认为这是因为圆端是由UISlider本地生成的。它假定拇指图像将在极端位置覆盖末端,因此不会重新绘制 一种解决方案是自己处理结尾处的舍入:
self.audioSlider.layer.cornerRadius = 5.0;
用这个值进行实验,它应该会起作用
或者,您可以确保图像具有圆角。您需要具有圆角的图像。例如: 然后简单地使用以下图像:
[_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是相同的,但为蓝色)
(如果图像是像素化的-那么你需要得到两倍大的图像-视网膜图像-黑色_dot@2x.png
)
(或者,如果您确实需要比给定示例更小的图像,则只需将此图像重命名为黑色_dot@2x.png
,而不是:UIEdgeInsetsMake(12,12,12,12)
使用:UIEdgeInsetsMake(6,6,6)
)
请参阅此处的更多信息:您可以尝试绘制所需大小的图像,而不是添加可能导致失真的图像
不,先生,它仍然不起作用,它返回相同的结果。有什么解决方案吗?您尝试了哪种解决方案?两者?首先,当我将圆形边缘图像放置为像素化图像时,它们在第二秒内返回相同的结果,因此这似乎足以使图像具有更高的分辨率。