根据滑块值取消UISlider上的拖动操作

时间:2011-01-05 10:24:48

标签: iphone webkit uislider

我在页面上有n个滑块表示百分比值。显然,在n个滑块上不应允许百分比超过100%。

所以如果当前n-1个滑块的总数是90,那么当第n个滑块被拖动时,我想将其停在10点。

任何想法?

1 个答案:

答案 0 :(得分:1)

UIControlEventValueChanged上调用的操作方法中,计算sender的最大允许值,如果其实际值大于最大值,请将sender.value设置为允许的最大值值。

编辑:我刚用2个滑块尝试了这种方法,效果很好。这是在两个滑块中的任何一个更新时调用的操作方法:

- (IBAction)sliderValueChanged:(id)sender
{
    UISlider *currentSlider = (UISlider *)sender;
    UISlider *otherSlider = currentSlider == self.slider1 ? self.slider2 : self.slider1;

    static float maxSum = 100.0f;
    float currentSum = currentSlider.value + otherSlider.value;

    if (currentSum > maxSum) {
        currentSlider.value = maxSum - otherSlider.value;
    }
}