2012-11-02 114 views
0

我正在开发一款iPad应用程序,需要在UISlider中选择特定的数据区间。滑块应该有两个滑块按钮,控制器也应该允许间隔的移动,即两个滑块按钮之间的区域选择data.Is的其他时间间隔也可用来处理this.Looking着您的想法任何自定义UI滑块...... 预先感谢创造UISlideriPhone的定制UISlider

第一种方式

创建

回答

3

两种方式Ø ne编程的UISlider。

现在您可以根据需要设置图像。

下面是对UISlider把图像的代码..

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(0.0, 0.0, 100.0, 30.0)]; 
[slider setColorPicker:colorPicker]; 
[slider setUseCustomSlider:NO]; 

[slider setThumbImage:[UIImage imageNamed:@"thumbSlider.png"] forState:UIControlStateNormal]; 

[slider setThumbImage:[UIImage imageNamed:@"thumbSlider.png"] forState:UIControlStateHighlighted]; 

[slider setMinimumTrackImage:[[UIImage imageNamed:@"grey_slide.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0] forState:UIControlStateNormal]; 

[slider setMaximumTrackImage:[[UIImage imageNamed:@"blue_slide.png"] stretchableImageWithLeftCapWidth:10 topCapHeight:0] forState:UIControlStateNormal]; 

[self.view addSubview:slider]; 

用于创建自定义滑块

现在再创建一个滑块,只有通过UIPanGestureRecognizer两幅图像的新思路。

在上面添加两个图像。一个像条状,另一个像拇指图像。

这是代码。

创建滑块第一..

UIImageView *imageback = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 47)] autorelease]; 
imageback.image = [UIImage imageNamed:@"strip.png"]; 
imageback.backgroundColor = [UIColor clearColor]; 
[sliderView addSubview:imageback]; 

sliderImg = [[[UIImageView alloc] initWithFrame:CGRectMake(147.5, 27, 25, 25)] autorelease]; 
sliderImg.contentMode = UIViewContentModeScaleToFill; 
sliderImg.image = [UIImage imageNamed:@"dot.png"]; 
sliderImg.backgroundColor = [UIColor clearColor]; 
sliderImg.userInteractionEnabled = YES; 
[sliderView addSubview:sliderImg]; 

立即申请UIPanGestureRecognizer打点形象..

UIPanGestureRecognizer *panGestureImg = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panDetectedSlider:)]; 
[sliderImg addGestureRecognizer:panGestureImg]; 
[panGestureImg release]; 

平移手势方法。

-(void)panDetectedSlider:(UIPanGestureRecognizer *)panRecognizer 
{ 
    if ([panRecognizer state] == UIGestureRecognizerStateBegan) 
    { 
     //Start 
    } 
    else if([panRecognizer state] == UIGestureRecognizerStateChanged) 
    { 
     //Change 
     CGPoint translation = [panRecognizer translationInView:sliderImg]; 
     CGPoint imageViewPosition = sliderImg.center; 
     imageViewPosition.x += translation.x; 
     sliderImg.center = imageViewPosition; 
     [panRecognizer setTranslation:CGPointZero inView:sliderImg]; 
    } 
    else if([panRecognizer state] == UIGestureRecognizerStateCancelled || [panRecognizer state] == UIGestureRecognizerStateFailed || [panRecognizer state] == UIGestureRecognizerStateEnded) 
    { 
     //End 
    } 
}