如何使用UISlider以及如何在特定值上设置滑块?

我第一次使用UIslider。 首先我想知道如果值的范围是0到10,如何gat滑块位置的值:

第二,我希望我的滑块设置为5个不同的值。 像1,2,3,4,5

滑块不应在标记值之间设置 在此处输入图像描述

我遵循了本教程,非常有帮助您可以在代码中设置变量,例如最大数量和滑块每次增加的数量。 链接: http : //www.xprogress.com/post-35-uislider-tutorial-example-how-to-use-slider-in-iphone-sdk-xcode/

首先你设置textfiled并将此函数添加到代码中

-(IBAction)changeSlider:(id)sender { text_field .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value]; } 

在这种情况下,我将XCode中的滑块设置为:0-3。 但滑块值为float:0.000 – 3.000。

 // **** Cylinder Volume Slider **** - (NSInteger) normalizeValueCylinderVolumeSlider:(float) value { NSInteger normalizedValue = 0; if (value>1.5) { if (value>2.5) normalizedValue = 3; else normalizedValue = 2; } else if (value>0.5) normalizedValue = 1; return normalizedValue; 

}

 - (IBAction)valueChangedCylinderVolumeSlider:(UISlider *)sender { float value = [sender value]; NSInteger normalizedValue; // Step 1: normalizedValue = [self normalizeValueCylinderVolumeSlider:value]; // Step 2: if (normalizedValue>value) { if ((normalizedValue-value)<0.3) sender.value = normalizedValue; } else if ((value-normalizedValue)<0.3) sender.value = normalizedValue; 

}

 - (IBAction)touchUpInsideCylinderVolumeSlider:(UISlider *)sender { float normalizedValue = 0; normalizedValue = [self normalizeValueCylinderVolumeSlider:[sender value]]; sender.value = normalizedValue; 

}

 - (IBAction)touchUpOutsideCylinderVolumeSlider:(UISlider *)sender { float normalizedValue = 0; normalizedValue = [self normalizeValueCylinderVolumeSlider:[sender value]]; sender.value = normalizedValue; 

}


在valueChanged动作上,(步骤1)我将值设置为刚性值:0,1,2,3。(步骤2)如果滑块拇指距离刚性值接近0.3,则将滑块拇指粘贴到刚性值上。

在touchUpInside&touchUpOutside上,我从valueChanged动作重复'step 1'代码,以修复拖动动作结束于操纵杆范围('步骤2')的情况下的滑块值。


最好的方法是将所有这些代码放在Slider的子类中。 但这是我在iOS开发上唯一的第一周/尝试。