0

私は5つのUISlidersを持っています。5 つすべての合計は 100 になるはずです。これで、デフォルトではすべて 20 から始まります。したがって、最初は 20 を超えてはなりません。すべての合計がすでに 100 になっているからです。 UISlider1 を 10 に下げます。これは、5 つすべての合計が 90 であることを意味するため、10 を「解放」しました。したがって、UISlider2 は 30 に増やすことができるはずです。または、UISlider2 を 25 に、UISlider3 を 25 に増やします。

私の質問は、どうすればいいですか?他の値に応じて UISlider の最大値を動的に (プログラムで) 変更するにはどうすればよいですか?

ありがとう!

編集:答えを見てください。

4

3 に答える 3

0

(解決)

返信してくれた皆さんのおかげで、私は自分でそれを理解しました.将来誰かが助けを必要とする場合に備えて、ここに解決策を投稿するつもりです.

(合計パーセントと使用パーセントはデフォルトで 100 に設定されています。PercentRemaining は、percenttotal-percentUsed によって決定されました。最初は 0 です。)

スライダーの初期化にはこれが含まれていました:

slider1.minimumValue = 0.0;
slider1.maximumValue = [appDelegate getSlider1Percent] + [appDelegate   getPercentRemaining];    

次に、スライダー アクション: - (IBAction)slider1Action:(UISlider *)sender {

NSUInteger value = sender.value;
self.slider1Counter.text = [NSString stringWithFormat:@"%d%%",value];



NSUInteger currentSlider1Percent = [appDelegate getSlider1Percent];
appDelegate.slider1Percent = value;


if(appDelegate.getSlider1Percent < currentSlider1Percent)
{


    nowFree = currentSlider1Percent - value;
    appDelegate.percentUsed = [appDelegate getPercentUsed] - nowFree;
    appDelegate.percentRemaining = [appDelegate getPercentTotal] - [appDelegate getPercentUsed];

    slider2.maximumValue = [appDelegate getSlider2Percent] + appDelegate.getPercentRemaining;

    slider3.maximumValue = [appDelegate getSlider3Percent] + appDelegate.getPercentRemaining;
    slider4.maximumValue = [appDelegate getSlider4Percent] + appDelegate.getPercentRemaining;
    slider5.maximumValue = [appDelegate getSlider5Percent] + appDelegate.getPercentRemaining;
}
else 
{
    nowFree = value - currentSlider1Percent;
    appDelegate.percentUsed = [appDelegate getPercentUsed] + nowFree;
    appDelegate.percentRemaining = [appDelegate getPercentTotal] - [appDelegate getPercentUsed];



    slider2.maximumValue -= nowFree;
    slider3.maximumValue -= nowFree;
    slider4.maximumValue -= nowFree;
    slider5.maximumValue -= nowFree;
}
}

それが何人かの人々を助けることを願っています!

乾杯!

于 2013-08-17T23:50:44.117 に答える