ios设置UISlider的起始位置和增量

时间:2012-05-22 11:25:42

标签: ios uislider

有谁知道如何设置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 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

如果你想要UISlider的起始位置(理想情况是在中间),那么

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

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

答案 2 :(得分:0)

无论使用的minimumValue或maximumValue如何,都应准确放置UISlider的中点。

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