这是我的两个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];