初めて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の値に設定しました。ただし、スライダーの値は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アクションから「ステップ1」コードを繰り返して、ドラッグアクションがスティック範囲外で終了する場合のスライダー値を修正します(「ステップ2」)。
最善の方法は、このすべてのコードをSliderのサブクラスに配置することです。しかし、これは私の唯一の最初の週/iOS開発の試みです。