如何更改滑块拇指图像?

时间:2011-09-10 12:18:29

标签: iphone objective-c xcode custom-controls slider

我必须创建自己的自定义滑块。我试图改变拇指图像,滑块的背景,并在一些测试像幻灯片解锁。 我试过这样但不起作用

CGRect frame = CGRectMake(0.0, 219.0, 323.0, 20.0);
UISlider *myslider = [[UISlider alloc] initWithFrame:frame];

[myslider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
[myslider setBackgroundColor:[UIColor clearColor]];
[myslider setThumbImage: [UIImage imageNamed:@"sliderThumb@2x.png"] forState:UIControlStateNormal];

myslider.minimumValue = 0.0;
myslider.maximumValue = 50.0;
myslider.continuous = YES;
myslider.value = 15.0;
[self.view addSubview:myslider];

但在这个拇指pic的大小非常大。如何减少拇指图片大小....以及如何给滑块背景和文本。请帮助我

3 个答案:

答案 0 :(得分:15)

[[UISlider appearance] setThumbImage:[UIImage imageNamed:@"ball.png"] forState:UIControlStateNormal];
[slider setMinimumTrackImage:[[UIImage imageNamed:@"volume_slider_oragne.png"] stretchableImageWithLeftCapWidth:0.3 topCapHeight:0.0] forState:UIControlStateNormal];
[slider setMaximumTrackImage:[[UIImage imageNamed:@"volume_strap_gry.png"] stretchableImageWithLeftCapWidth:0.3 topCapHeight:0.0] forState:UIControlStateNormal];

答案 1 :(得分:7)

要设置滑块的背景颜色,我认为您可以将属性backgroundColor设置为[UIColor colorWithPatternImage:[UIImage imageNamed:@"slider background"]];

此外,具有附加结尾@2x的图像意味着它们的大小是标准副本的两倍。这仅适用于视网膜显示器,您不应在标准(传统)设备的UIImage中使用它。尝试将图像名称设置为@"sliderThumb.png",只要您拥有图像的旧版本。

答案 2 :(得分:4)

只需提供不同大小的sliderThumb@2x.png,我们就可以自行解决。