有谁知道如何设置 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)
设置滑块位置
根据您的代码,您可以:
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)
| 归档时间: |
|
| 查看次数: |
8739 次 |
| 最近记录: |