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

Ios 如何在移动滑块时更改按钮的背景色?,ios,uibutton,uislider,Ios,Uibutton,Uislider,我目前正在努力使我的按钮的背景色随着滑块到达某一点而改变。当我的滑块值达到1时,我希望背景颜色从橙色变为蓝色,但现在只有按下按钮,背景颜色才会改变。请帮忙:) 这就是我目前拥有的: - (IBAction)buttonChange:(id)sender { if ([_statuslabel.text isEqualToString:@"Temperature: 1"]) { [_myButton setBackgroundColor: [UIColor blueColor]] ; 根

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

这就是我目前拥有的:

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

根据我对你问题的解释,你正在使用UISlider,你在touchupinside上调用这个函数

要持续更新,请执行valuechanged功能

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

然后在interface builder中,将其连接到滑块“值更改”出口

以获得按钮颜色的持续更改,您可以使用以下代码:

- (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];
}
只需在
IB
中连接
UISlider
,并为
值更改事件设置
sliderValueChanged:
方法

使用HSV()模型应该是归档所需内容的最简单解决方案


希望这有帮助

您希望更改是渐进的还是突然的?您知道如何处理滑块值的更改吗?请提供更多详细信息,您是否使用UISlider?在提供的代码中,您正在检查标签的文本,如何更新该文本?如果您提供更多详细信息,我将编辑我的答案。谢谢您的回复。我对这一切都不熟悉,我只希望我的按钮的颜色随着滑块到达某个点(0.5或一半)而改变,这不需要太花哨。当滑块到达某个点时,从橙色到蓝色的突然变化我更新了我的答案,为您做到了这一点。我已经输入了您的代码,它已经完成了我想要它做的事情。你帮了大忙,谢谢,代码不错。但我有疑问:self.yourButton.backgroundColor是否足以立即改变UIButton?我不知道,但在创建UIButton后对其进行更改时,我也遇到了同样的困难。当然,只需测试代码即可。它会让你的颜色从蓝色稳定地变为橙色。不仅仅是从一种颜色到另一种颜色的硬切,而是基于滑块位置的连续变化。滑块btw的范围需要介于0到1之间。我测试了它,当我拖动时按钮被更新了。。。