对两个UISliders进行编程,使其不超过彼此的值

时间:2012-11-13 11:18:48

标签: objective-c ios xcode

这是我的两个UISliders的值变化空洞。它们的功能是设置对象的最小和最大价格。我无法弄清楚如何使它们不超过彼此的价值。

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

但它会返回奇怪的结果......

为此获得了一些有效的解决方案?

1 个答案:

答案 0 :(得分:1)

事实是,滑块的拇指位置与其最大/最小值成比例。因此,设置最大/最小值不应该这样做 在你的情况下,你应该尝试这个:

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

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

[minPrisSlider setContinuous:YES];