0

这是我的两个 UISlider 的 valueChanged voids。它们的功能是设置对象的最低和最高价格。我无法弄清楚如何使它们不超过彼此的值。

因此,如果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 回答