0

これは、私の 2 つの UISliders の valueChanged void です。それらの機能は、オブジェクトの最低価格と最高価格を設定することです。お互いの価値を超えないようにする方法がわかりません。

したがってminPrisSlider.value = 100、maxPrisSlider を 100 未満および反対にドラッグすることはできないはずです。

- (void)minValueChanged:(UISlider*)sender
{
NSUInteger index = (NSUInteger)(minPrisSlider.value + 0.5); // Round the number.
[minPrisSlider setValue:index animated:NO];

int progressAsInt =(int)(minPrisSlider.value + 0.5f);
NSString *newText =[[NSString alloc] initWithFormat:@"%d,-",progressAsInt];
minPrisText.text = newText;
}

- (void)maxValueChanged:(UISlider*)sender
{

NSUInteger index = (NSUInteger)(maxPrisSlider.value + 0.5); // Round the number.
[maxPrisSlider setValue:index animated:NO];

int progressAsInt =(int)(maxPrisSlider.value + 0.5f);
NSString *newText =[[NSString alloc] initWithFormat:@"%d,-",progressAsInt];
maxPrisText.text = newText;

}

追加してみました

[minPrisSlider setMaximumValue:maxPrisSlider.value];maxValueChanged

[maxPrisSlider setMinimumValue:minPrisSlider.value];minValueChanged

しかし、それは奇妙な結果を返します...

これに対する実用的な解決策はありますか?

4

1 に答える 1

1

問題は、スライダーのつまみの位置がその最大値/最小値に比例することです。したがって、最大値/最小値を設定することはできません。あなたの場合、これを試してください:

if ([minPrisSlider value] > [maxPrisSlider value])
  [minPrisSlider setValue:[maxPrisSlider value]];

最大スライダーを逆にします。連続値を設定することを忘れないでください:

[minPrisSlider setContinuous:YES];
于 2012-11-13T11:34:36.553 に答える