2013-09-25 88 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

相关问题