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

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

但返回奇怪的结果...

有一些可行的解决方案吗?

最佳答案

关键是,滑块的拇指位置与其最大/最小值成正比。因此,不应设置最大值/最小值
对于您的情况,您应该尝试以下操作:

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


并将其反转为最大滑块。不要忘记设置连续值:

[minPrisSlider setContinuous:YES];

09-07 15:21