0

現在、スライダーが特定のポイントに達したときにボタンの背景色を変更するのに苦労しています。スライダーの値が 1 に達すると、背景色をオレンジ色から青色に変更したいのですが、現在はボタンを押した場合にのみ色が変わります。助けてください :)

これは私が現在持っているものです:

- (IBAction)buttonChange:(id)sender {
if ([_statuslabel.text isEqualToString:@"Temperature: 1"]) {
    [_myButton setBackgroundColor: [UIColor blueColor]] ;
4

2 に答える 2

1

ボタンの色を一定に変更するには、次のコードを使用できます。

- (IBAction)sliderValueChanged:(UISlider *)sender
{
    CGFloat blueHue = 232.0f;  // should be kind of blue
    CGFloat orangeHue = 32.0f; // should be kind of orange

    CGFloat resultingHue = ((blueHue - orangeHue)) * sender.value + orangeHue;

    self.yourButton.backgroundColor = [UIColor colorWithHue:resultingHue / 360.0f
                                                 saturation:1
                                                 brightness:1
                                                      alpha:1];
}

に接続してUISlider、イベントのメソッドをIB設定するだけです。sliderValueChanged:Value Changed

HSV ( http://en.wikipedia.org/wiki/HSL_and_HSV ) モデルを使用することは、必要なものをアーカイブするための最も簡単なソリューションです。

お役に立てれば

于 2013-09-25T19:08:05.683 に答える
0

あなたの質問の私の解釈から、あなたは UISlider を使用しており、この関数を touchupinside で呼び出しています。

継続的に更新するには、valuechanged 関数を実装します

-(IBAction)sliderValueChanged:(UISlider*)slider {
    if (slider.value > 0.5)
        slider.backgroundColor = [UIColor blueColor];
    else
        slider.backgroundColor = [UIColor orangeColor];
}

次に、インターフェースビルダーで、これをスライダーの「値が変更されました」アウトレットに接続します

于 2013-09-25T18:56:18.817 に答える