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