2012-05-22 99 views
4

有谁知道如何设置UISlider(理想情况下在中间)的起始位置,以及如何将它增加到几十而不是一个?ios设置UISlider的起始位置和增量

这里是我到目前为止有:

// Setup custom slider images 
UIImage *minImage = [UIImage imageNamed:@"ins_blueTrack.png"]; 
UIImage *maxImage = [UIImage imageNamed:@"ins_whiteTrack.png"]; 
UIImage *tumbImage= [UIImage imageNamed:@"slide.png"]; 

minImage=[minImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0]; 
maxImage=[maxImage stretchableImageWithLeftCapWidth:6.0 topCapHeight:0.0]; 

// Setup the slider 
[self.slider setMinimumTrackImage:minImage forState:UIControlStateNormal]; 
[self.slider setMaximumTrackImage:maxImage forState:UIControlStateNormal]; 
[self.slider setThumbImage:tumbImage forState:UIControlStateNormal]; 

self.slider.minimumValue = 10; 
self.slider.maximumValue = 180; 
self.slider.continuous = YES; 

int myVal = self.slider.value; 
NSString *timeValue = [[NSString alloc] initWithFormat:@"%1d", myVal]; 

self.timeLabel.text = timeValue; 

// Attach an action to sliding 
[self.slider addTarget:self action:@selector(fxSliderAction) forControlEvents:UIControlEventValueChanged]; 

回答

3

设置滑块位置

在你的代码让你可以有:

self.slider.value = (90); 

注:有是self没有真正的需要,当你引用同一类的IBOutlet

如果你想UISlider设置过半的真正动态的方式,你只需除以2,你的最大价值,有效地减半它:

self.slider.value = (self.slider.maximumValue/2); 

在10

倍数递增

为此,我会建议一些与你目前有些不同的东西。至少有10个,最多180个,最少1个,最多18个?

self.slider.minimumValue = 1; 
self.slider.maximumValue = 18; 

您检索滑块的值每一次,只要乘以10就这样,滑块移动到18个不同的地点(如你想要的),而你总是拿到的10

int trueSliderValue = self.slider.value * 10; 
+0

谢谢你,这个ID很棒 –

0

如果你想有一个UISlider(最好在中间)的起始位置,然后

slider.value = (slider.maximumValue/2); 

,如果你想增加它在10而不是那些,那么你应该拥有那么多的最大价值。现在,在滑块值改变方法检查地板和当前滑块值的ceilling然后将其设置为slider.value =新价值

0

这应该准确地放置UISlider的中点,而不管正在使用的minimumValue或maximumValue。

slider.minimumValue = -10.0 
slider.maximumValue = 1000.0 
let trueMidPoint = ((slider.maximumValue-0)-(0-slider.minimumValue))/2 
slider.value = trueMidPoint