2011-05-03 183 views
7

我想自定义滑块控件,但找不到任何要应用的东西,我想要的滑块应该是下图所示的东西。请任何人建议我如何使它......自定义滑块控件

enter image description here

回答

9

试试这个代码..

CGRect frame = CGRectMake(174, 12.0, 120.0, 40); 
customSlider = [[UISlider alloc] initWithFrame:frame]; 
[customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; 
// in case the parent view draws with a custom color or gradient, use a transparent color 
customSlider.backgroundColor = [UIColor clearColor];  
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"orangeslide.png"] 
          stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 
UIImage *stetchRightTrack = [[UIImage imageNamed:@"yellowslide.png"] 
          stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 
[customSlider setThumbImage: [UIImage imageNamed:@"slider_ball.png"] forState:UIControlStateNormal]; 
[customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal]; 
[customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal]; 
customSlider.minimumValue = 0.0; 
customSlider.maximumValue = 100.0; 
customSlider.continuous = YES; 
customSlider.value = 50.0; 

// Add an accessibility label that describes the slider. 
[customSlider setAccessibilityLabel:NSLocalizedString(@"CustomSlider", @"")]; 
[self.view addSubview:customSlider]; 
customSlider.tag = 1; 
+0

这是一个很好的帖子,但它不符合我的要求的朋友..我不想更改滑块的minimumTrackImage和maximumTrackImage但这些需要保持稳定,应该像问题中的形象一样。请告诉我任何与此相关的事情! – 2011-05-03 06:18:32

+0

+1虽然底部的答案是一样的这一个,但你有一个额外的评论:) – 2011-05-03 06:24:01

+0

复制并粘贴此源:http://uispec.googlecode.com/svn/trunk/xcode/UICatalogDemo/ControlsViewController.m – DarkDust 2011-05-04 06:48:32

8

试试这个

CGRect frame = *youe required frame*; 
UISlider * customSlider = [[UISlider alloc] initWithFrame:frame]; 

// in case the parent view draws with a custom color or gradient, use a transparent color 
customSlider.backgroundColor = [UIColor clearColor];  
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"orangeslide.png"] 
             stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 
UIImage *stetchRightTrack = [[UIImage imageNamed:@"yellowslide.png"] 
             stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0]; 
[customSlider setThumbImage: [UIImage imageNamed:@"slider_ball.png"] forState:UIControlStateNormal]; 
[customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal]; 
[customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal]; 
customSlider.minimumValue = 0.0; 
customSlider.maximumValue = 100.0; 
customSlider.continuous = YES; 
customSlider.value = 50.0; 
[customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; 
[self.view addSubView:customSlider]; 
[customSlider release]; 

它导致的: -

根据您的要求这段代码导致此滑块添加图像

+0

+1这是一个优雅的解决方案 – 2011-05-03 06:23:21

+0

thanx,但它是与阿曼先前给出的相同的答案。 – 2011-05-03 06:26:37

+0

@iphone monster这是UICatalog示例应用程序中使用的代码。首先,我想给你一个链接,但是我只给出相关的代码。阿曼也可能会这样想,但无论如何它会得到解决方案。 – Gypsa 2011-05-03 06:32:34