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

只需连接您UISliderIB设置事件的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];
}

然后在界面生成器中将其连接到滑块“Value Changed”插座

于 2013-09-25T18:56:18.817 回答