1

ページにパーセンテージ値を表す n 個のスライダーがあります。パーセンテージが n 個のスライダー全体で合計 100% を超えてはならないことは明らかです。

したがって、n-1 スライダーの現在の合計が 90 の場合、n 番目のスライダーがドラッグされているときに、10 で停止したいと思います。

何か案は ?

4

1 に答える 1

1

で呼び出されるアクションメソッドでUIControlEventValueChanged、の最大許容値を計算し、sender実際の値が最大値より大きい場合はsender.value、最大許容値に設定します。

編集:私は2つのスライダーでこのアプローチを試しましたが、うまく機能します。これは、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;
    }
}
于 2011-01-05T11:00:57.187 に答える