ios - 如何在移动 slider 时更改按钮的背景颜色?

标签 ios uibutton uislider

我目前正在努力让按钮的背景颜色在 slider 到达某个点时发生变化。我希望当 slider 值达到 1 时背景颜色从橙色变为蓝色,但现在只有按下按钮时才会改变颜色。请帮忙:)

这是我目前拥有的:

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

最佳答案

要不断更改按钮颜色,您可以使用以下代码:

- (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 并为 Value Changed 事件设置 sliderValueChanged: 方法即可。

使用 HSV ( http://en.wikipedia.org/wiki/HSL_and_HSV ) 模型应该是归档您想要的内容的最简单的解决方案。

希望对你有帮助

关于ios - 如何在移动 slider 时更改按钮的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19012788/

相关文章:

iOS:与 UIButton 的 UIControlEventTouchUpOutside 事件的行为不一致

ios - 崩溃问题 : Is it possible to get crash info programmatically like exception code or any message

iphone - 搜索栏 ResignFirstResponder 隐藏项目

iOS - 在 NSURLSession 中重新尝试失败的 NSURLRequests

ios - 如何将 UIButton 设置为转到上一个屏幕?

xcode - 将多个 socket 连接到单一操作?

jquery - 为双色范围设置 jQuery UI 样式

ios - 在点击手势时调用 UIISlider valueChanged 方法

Objective-C 不同语法问题

ios - iOS 8 中没有取消 UISlider 事件?