移动滑块时如何更改按钮的背景颜色?

时间:2013-09-25 18:45:32

标签: ios uibutton uislider

我正在努力让我的按钮的背景颜色随着滑块到达某个点而改变。当我的滑块值达到1时,我希望背景颜色从橙色变为蓝色,但是现在只有按下按钮才会改变颜色。请帮助:)

这就是我现在所拥有的:

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

2 个答案:

答案 0 :(得分: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)模型应该是存档所需内容的最简单的解决方案。

希望这有帮助

答案 1 :(得分:0)

根据我对您的问题的解释,您正在使用UISlider并在touchupinside上调用此函数。

要连续更新它,请实现valuechanged函数

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

然后在界面构建器中将此连接到滑块“Value Changed”插座