2013-09-25 64 views
0

我目前正在努力讓我的按鈕的背景顏色改變,因爲我的滑塊達到某個點。當我的滑動值達到1時,我想讓背景顏色從橙色變爲藍色,但現在只有按下按鈕纔會改變顏色。請幫助:)我如何在移動滑塊時更改按鈕的背景顏色?

這是我目前有:

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

你想要改變是漸變還是突然? – LuisCien

+1

你知道如何處理滑塊值的變化嗎? – rmaddy

+0

請提供更多詳情,您是否使用UISlider?在您提供的代碼中,您正在檢查標籤的文本,您如何更新該文本?如果您提供更多詳細信息,我會編輯我的答案 – Jack

回答

0

我從你的問題的解釋,您使用的是UISlider和你打電話touchupinside此​​功能。

,不斷更新它,實現一個的valueChanged功能

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

然後在Interface Builder這個連接滑塊「值改爲」出口

+0

我已經把你的代碼放進去了,它已經完成了我想要做的事情。你一直很好的幫助,謝謝 – user2816600

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]; 
} 

只需連接您的UISliderIB並設置sliderValueChanged:米方法爲Value Changed事件。

使用HSV(http://en.wikipedia.org/wiki/HSL_and_HSV)模型應該是最簡單的解決方案來存檔你想要的。

希望這會有幫助

+0

嗨,很好的代碼。但我在這裏懷疑:self.yourButton.backgroundColor是否足以立即改變UIButton?我不知道,但是在創建UIButton之後,我有很大的難度。 – Unheilig

+0

當然,只需測試一下代碼即可。它會讓你的顏色從藍色變成橙色。不只是從一種顏色到另一種顏色的硬切,而是基於滑塊位置的連續變化。滑塊的範圍btw。需要在0..1之間。 我測試了它,並且在拖動時更新了按鈕... – Georg

相關問題