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

Luk*_*ley 5 uislider ios

有谁知道如何设置 a 的起始位置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];
Run Code Online (Sandbox Code Playgroud)

Lia*_*rth 4

设置滑块位置

根据您的代码,您可以:

self.slider.value = (90);
Run Code Online (Sandbox Code Playgroud)

注意:当您从同一个类self引用 时,没有真正的需要。IBOutlet

如果您想要一种真正动态的方式来设置UISlider中间标记,您只需将最大值除以 2,即可有效地将其减半:

self.slider.value = (self.slider.maximumValue / 2);
Run Code Online (Sandbox Code Playgroud)

以 10 的倍数递增

为此,我会建议一些与您目前所拥有的略有不同的东西。不是最少 10 个、最多 180 个,而是最少 1 个、最多 18 个呢?

self.slider.minimumValue = 1;
self.slider.maximumValue = 18;
Run Code Online (Sandbox Code Playgroud)

每次检索滑块的值时,只需将其乘以 10。这样滑块就会移动到 18 个不同的位置(如您所愿),并且您始终会得到 10 的倍数。

int trueSliderValue = self.slider.value * 10;
Run Code Online (Sandbox Code Playgroud)