我第一次使用 UIslider。首先,如果值的范围是 0 到 10,我想知道如何获取滑块位置的值:
其次,我希望我的滑块设置为 5 个不同的值。像 1, 2, 3, 4, 5
滑块不应设置在标记值之间
我第一次使用 UIslider。首先,如果值的范围是 0 到 10,我想知道如何获取滑块位置的值:
其次,我希望我的滑块设置为 5 个不同的值。像 1, 2, 3, 4, 5
滑块不应设置在标记值之间
首先你设置文本文件并将这个函数添加到代码中
-(IBAction)changeSlider:(id)sender
{
text_field .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value];
}
我按照本教程进行操作,它非常有帮助,您可以在代码中设置一些变量,例如最大数量和滑块每次增加多少。链接:http ://www.xprogress.com/post-35-uislider-tutorial-example-how-to-use-slider-in-iphone-sdk-xcode/
在这种情况下,我将 XCode 中的滑块设置为:0-3。但滑块值是浮动的: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 操作中的“步骤 1”代码,以修复拖动操作结束于摇杆范围之外的情况(“步骤 2”)的滑块值。
最好的办法是将所有这些代码放在 Slider 的子类中。但这是我在 iOS 开发上唯一的第一周/尝试。