Iphone 基于滑块值取消UISlider上的拖动操作

Iphone 基于滑块值取消UISlider上的拖动操作,iphone,webkit,uislider,Iphone,Webkit,Uislider,我在一个页面上有n个滑块,表示百分比值。显然,n个滑块的百分比总数不应超过100% 因此,如果n-1个滑块的当前totat为90,那么当拖动第n个滑块时,我希望将其停止在10 有什么想法吗?在UIControlEventValueChanged上调用的操作方法中,计算发送方的最大允许值,如果其实际值大于最大值,则将发送方.value设置为最大允许值 编辑:我刚刚用两个滑块尝试了这种方法,效果很好。这是两个滑块中的任何一个更新时调用的操作方法: - (IBAction)sliderValueCha

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

因此,如果n-1个滑块的当前totat为90,那么当拖动第n个滑块时,我希望将其停止在10


有什么想法吗?

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

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

- (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;
    }
}

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

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

- (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;
    }
}

是的,我试过了,但是拖动仍然发生,并且值和拖动位置不同步。我有一个标签,我用百分比值更新,这个标签显示100,而滑块卡在80Nope,你错了。我刚试过,效果很好。见我的编辑上面。当然,滑块必须设置为连续更新。是的-我试过了,但是拖动仍然发生,并且值和拖动位置不同步。我有一个标签,我用百分比值更新,这个标签显示100,而滑块卡在80Nope,你错了。我刚试过,效果很好。见我的编辑上面。当然,滑块必须设置为持续更新。