4

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

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

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

4

3 回答 3

4

首先你设置文本文件并将这个函数添加到代码中

-(IBAction)changeSlider:(id)sender 
{
    text_field .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value];
}
于 2012-12-07T11:31:52.487 回答
3

我按照本教程进行操作,它非常有帮助,您可以在代码中设置一些变量,例如最大数量和滑块每次增加多少。链接:http ://www.xprogress.com/post-35-uislider-tutorial-example-how-to-use-slider-in-iphone-sdk-xcode/

于 2012-07-23T09:48:27.597 回答
0

在这种情况下,我将 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 开发上唯一的第一周/尝试。

于 2014-08-27T11:27:22.190 回答