В вашем методе действия, который вызывается для UIControlEventValueChanged
, вычислите максимально допустимое значение для sender
, а если его фактическое значение больше максимального, установите для sender.value
максимально допустимое значение.
Edit: я только что попробовал этот подход с 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;
}
}