2011-01-05 5 views

답변

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; 
    } 
} 
+0

예 - 시도했지만 드래그가 여전히 발생하고 값과 드래그 위치가 동기화되지 않습니다. 나는 백분율 가치로 새롭게하는 상표가 있고,이 상표는 100를, 슬라이더는 80에 찔렀다. –

+0

Nope, 틀렸다. 방금 해봤는데 완벽하게 작동합니다. 위의 편집을 참조하십시오. 물론 슬라이더를 연속 업데이트로 설정해야합니다. –

+0

고마워요! 내가 필요한 것 ... – amergin

관련 문제