2011-01-05 4 views

Antwort

1

In Ihrer Aktionsmethode, die auf UIControlEventValueChanged berechne den maximal zulässigen Wert für sender, und wenn sein Ist-Wert größer ist als der Maximalwert eingestellt sender.value auf den maximalen, zulässigen Wert genannt wird.

Edit: Ich habe gerade diesen Ansatz mit 2 Schieberegler versucht und es funktioniert super. Dies ist die Aktion-Methode, die aufgerufen wird, wenn einer der beiden Schieber aktualisiert wird:

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

ja - Ich habe versucht, aber das, aber der Widerstand immer noch geschieht, und der Wert und ziehen Position nicht synchron gehen. Ich habe eine Bezeichnung, die ich mit dem Prozentwert zu aktualisieren, und diese Bezeichnung zeigt 100, während der Schieberegler bei 80 fest ist –

+0

Nein, Sie irren sich. Ich habe es gerade ausprobiert und es funktioniert perfekt. Siehe meine Bearbeitung oben. Natürlich müssen die Schieberegler auf kontinuierliche Aktualisierung eingestellt sein. –

+0

Danke Ole! genau das, was ich brauchte... – amergin

Verwandte Themen